我有一个关于异常处理的问题.请考虑遵循Java代码段.
try{
//code
}catch(SubSubException subsubex){
//code
}catch(SubException subex){
//code
}catch(Exception ex){
//code
}
Run Code Online (Sandbox Code Playgroud)
我知道这是处理异常的推荐方法.但是我可以通过使用以下代码片段来实现相同的功能.
try{
//code
}catch ( Exception ex){
if( ex instanceof SubException){
//code
}else if(ex instanceof SubSubException){
//code
}else{
//code
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我第二种方法的缺点吗?
我分析了我正在使用Java源代码分析器的代码.其中一个警告是"始终将用户定义的异常声明为最终".还有许多其他警告没有多大意义,但这个让我有点困惑.
我正在研究一个框架,我有一个根通用异常(比如FrameworkGenericException),对于其他异常,我只是从根异常中导出它们.所以我有一个框架的例外层次结构.我可能会扩展层次结构,但我认为这个警告告诉我不要有这样的层次结构,而是单独定义它们.那么我应该走哪条路,你的评论是什么?