0

谁能解释通过子类化 java.lang.Exception 创建自己的 Exception 类的目的是什么?

为什么你不能自己制作处理异常的传统类?

任何人都可以提供一个示例,说明为什么子类 Exception 或 Throwable 有用吗?

4

3 回答 3

2

java.lang.Exception当您构建一段可以抛出不同异常的代码时,子类化很有用,例如,当您打开一个文件时,您可以获取FileNotFoundExceptionIOException......知道想象您正在从特定的 URL 下载它,因此您可以获取MalformedURLException和很快。想象这样的场景,但有非常特定于程序的异常。

做类似的事情

try{
   ....
}catch(MySubclassedException1 ex){
   ....
}catch(MySubclassedException2 ex){
   ....
}catch(MySubclassedException3 ex){
   ....
}

将比

try{
   ....
 }catch(Exception ex){
   if(ex.getMessage().equals("Message1")){
      ...
   }else if(ex.getMessage().equals("Message2")){
      ...
   }else if(ex.getMessage().equals("Message3")){
      ...
   }
 }

希望能帮助到你。

于 2013-07-31T01:59:13.047 回答
2

它很有用,因为它可以让您更精细地控制应用程序在发生错误时抛出的异常类型。如果所有内容都涉及非常普遍的异常,您将不得不依赖错误消息中的字符串类型信息。最好能够提供一个可以检查的类型异常

于 2013-07-31T01:57:10.400 回答
1

无效用户凭据异常。任何收到该异常的人都会知道它是什么。此外,您可以检查异常是否属于任何类型,并根据类型进行处理。例如,如果引发异常并且您意识到它的类型为 InvalidUserCredentialsException,则您知道重定向到登录屏幕。

于 2013-07-31T01:56:21.097 回答