如果没有注入属性,抛出的异常类型是什么?

时间:2015-07-17 19:29:22

标签: java spring exception

如果没有注入模块,在methodA中我可以抛出哪种异常?

 public class Customer{
       private String module;

       public void methodA(){
         if (StringUtils.isBlank(module))
           throw new ???
       }
    }

3 个答案:

答案 0 :(得分:1)

您可以创建自己的自定义异常,也可以抛出IllegalStateException以及相应的消息。来自文档:

  

表示在非法或不适当的时间调用了某个方法。换句话说, Java环境或Java应用程序未处于所请求操作的适当状态。 (强调我的)

由于您不希望module为空,因此您处于无效状态,因此此异常适合抛出此情况IMO。

答案 1 :(得分:0)

没有Specfic预定义Exception已经存在,您可以使用。所以你可以创建一个像ModuleException这样的新人: -

public class ModuleException extends Exception {
  public ModuleException() { super(); }
  public ModuleException(String message) { super(message); }
  public ModuleException(String message, Throwable cause) { super(message, cause); }
  public ModuleException(Throwable cause) { super(cause); }
}

创建ModuleException后,您可以将其投放到您的班级中,如: -

public void methodA(){
         if (StringUtils.isBlank(module))
           throw new ModuleException("Module is blank but is MANDATORY");
       }

答案 2 :(得分:0)

我会说使用isBlanktrue方法在空字符串时也会返回<?xml version="1.0"?> <!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <system.web> <compilation debug="true" targetFramework="4.0"/> <httpRuntime/> </system.web> </configuration> 。最好的选择可能是制作你自己的例外(可以找到信息here)。这样你也可以完全定制。