2013-07-31 22 views
0

任何人都可以通过继承java.lang.Exception来解释创建自己的Exception类的目的是什么?创建自己的Exception类的目的是什么

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

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

回答

1

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

2

这很有用,因为它可以让您更细致地控制应用程序在发生错误时抛出的异常类型。 如果所有事情都是以非常普遍的例外方式进行交流,那么您不得不依赖错误消息中的字符串类型信息。能够提供可以检查的类型异常要好得多

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")){ 
     ... 
    } 
} 

希望它能帮助。