Java异常处理-自定义异常
我有一个这样的自定义异常Java异常处理-自定义异常,java,exception,inheritance,Java,Exception,Inheritance,我有一个这样的自定义异常 public class MyOwnException extends Exception { } 然后在我的班上 我有两种方法 public void ExceptionTest() throws Exception { throw new FileNotFoundException(); } public void ApplicationExceptionTest() throws MyOwnException { throw new FileNot
public class MyOwnException extends Exception {
}
然后在我的班上
我有两种方法
public void ExceptionTest() throws Exception {
throw new FileNotFoundException();
}
public void ApplicationExceptionTest() throws MyOwnException {
throw new FileNotFoundException();
}
Eclipse抱怨第二个方法“未处理的异常类型FileNotFoundException”。我想既然MyOwnException扩展了Exception,它就不应该抱怨
有人能告诉我这里缺少什么吗?您的方法声明它抛出
MyOwnException
,但FileNotFoundException
不是MyOwnException
。仅仅因为它们都是Exception的子类,并不意味着它们彼此相关
public void ApplicationExceptionTest() throws Exception
{
throw new FileNotFoundException();
}
只有在throws
子句中明确列出了异常类或超类时,才能抛出选中的异常MyOwnException
不是FileNotFoundException
的超类
为什么要这样做?您的方法声明它抛出
MyOwnException
,但FileNotFoundException
不是MyOwnException
。仅仅因为它们都是Exception的子类,并不意味着它们彼此相关
public void ApplicationExceptionTest() throws Exception
{
throw new FileNotFoundException();
}
只有在throws
子句中明确列出了异常类或超类时,才能抛出选中的异常MyOwnException
不是FileNotFoundException
的超类
为什么要这样做?扩展树
- 例外情况
- IOException
- FileNotFoundException
- 肌细胞异常
- IOException
public void ApplicationExceptionTest() throws Exception
{
throw new FileNotFoundException();
}
这条路怎么走
评论:
我希望这只是为了模型测试,而不是为了实现一个在常规源代码中使用wnt的类 扩展树
- 例外情况
- IOException
- FileNotFoundException
- 肌细胞异常
- IOException
public void ApplicationExceptionTest() throws Exception
{
throw new FileNotFoundException();
}
这条路怎么走
评论:
我希望这只是为了模型测试,而不是为了实现一个在常规源代码中使用wnt的类 您是说ApplicationExceptionTest抛出MyOwnException。虽然MyOwnException扩展了异常,但这在这里并不重要,因为FileNotFoundException不扩展MyOwnException 如果这样做更简单,请尝试将异常替换为“Shape”,将FileNotFoundException替换为“Square”,将myowneexception替换为“Circle”。你是说你扔了一个圆,但实际上你扔了一个正方形。两者都是形状并不重要
(顺便说一句,您的命名约定对于Java非常不典型。在Java中,方法通常以小写字母开头。)您是说ApplicationExceptionTest抛出MyOwnException。虽然MyOwnException扩展了异常,但这在这里并不重要,因为FileNotFoundException不扩展MyOwnException 如果这样做更简单,请尝试将异常替换为“Shape”,将FileNotFoundException替换为“Square”,将myowneexception替换为“Circle”。你是说你扔了一个圆,但实际上你扔了一个正方形。两者都是形状并不重要
(顺便说一句,您的命名约定对于Java非常不典型。在Java中,方法通常以小写字母开头。)在Java中检查异常通常是一个坏主意,因为它经常导致“异常意大利面”。大多数现代框架都不使用checked exception,事实上,大多数框架都将现有的遗留检查异常与未检查的异常包装在一起。Java中的检查异常通常是一个坏主意,因为它常常导致“异常意大利面”。大多数现代框架都不使用checked exception——事实上,大多数框架都用unchecked exception来包装现有的遗留检查异常。方法名称的Java约定是,它们应该以小写字母开头;e、 exceptionTest而不是exceptionTest。Java对方法名的约定是,它们应该以小写字母开头;e、 g.exceptionTest而不是exceptionTest.+1用于显示类层次结构@thomas_ds您提到您有Eclipse,所以您可以通过右键单击MyOwnException并选择“OpenTypeHierarchy”或F4来查看此树。在本例中,Exception和IOException都有许多其他子类。+1用于显示类层次结构@thomas_ds您提到您有Eclipse,所以您可以通过右键单击MyOwnException并选择“OpenTypeHierarchy”或F4来查看此树。在这种情况下,Exception和IOException都有许多其他子类。