Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 应在何处定义自定义(和罕见)例外?_Java_Oop_Exception - Fatal编程技术网

Java 应在何处定义自定义(和罕见)例外?

Java 应在何处定义自定义(和罕见)例外?,java,oop,exception,Java,Oop,Exception,应该在哪里定义仅由一个方法引发的自定义异常?如果我能把它们写成本地类,那就太好了,但是我不能把它们扔掉,因为它们不能解析成一个类型 提前感谢您可以将异常声明为内部类静态,这样您就可以在主类之外使用它 另一种解决方案是只使用现有的常规异常类型之一,在“直接已知子类”下列出所有这些类型:将它们创建为定义该方法的嵌套类: class MyClass { void myMethod() throws MyCustomException {} static class MyCustomExcep

应该在哪里定义仅由一个方法引发的自定义异常?如果我能把它们写成本地类,那就太好了,但是我不能把它们扔掉,因为它们不能解析成一个类型


提前感谢

您可以将异常声明为内部类静态,这样您就可以在主类之外使用它


另一种解决方案是只使用现有的常规异常类型之一,在“直接已知子类”下列出所有这些类型:

将它们创建为定义该方法的嵌套类:

class MyClass {
  void myMethod() throws MyCustomException {}

  static class MyCustomException extends Exception {}
}

请注意,在这种情况下,自定义异常类需要是
静态的
,以便将
Throwable
可序列化的
接口作为嵌套在定义该方法的类中的类。别忘了将异常类设为静态。这将是下一个最好的方法。。。因此,绝对不可能在方法内部定义它?不。如果您希望能够捕获自定义异常(或声明您的方法抛出自定义异常),则符号需要在方法外部可见。