I have a question regarding exception handling.
Consider following Java code snippet.
try{
//code
}catch(SubSubException subsubex){
//code
}catch(SubException subex){
//code
}catch(Exception ex){
//code
}
I know this is the recommended way of handling exceptions. But I can achieve the same thing by using following code snippet.
try{
//code
}catch ( Exception ex){
if( ex instanceof SubException){
//code
}else if(ex instanceof SubSubException){
//code
}else{
//code
}
}
Can somebody tell me disadvantages of second approach?
The second approach is less readable. In addition Pokemon exception handling is never the way to go even though your “clever” trick is to use the instanceof keyword. I am not poking fun or mocking you in anyway, but it is best to write code for humans to read and maintain, not for the computer.