一刀切拒绝try catch,程序员就会变成“孤岛”吗?
2023-09-18 15:28:10
一直以来,try catch都是大家使用最多的异常处理方式。但网上有很多观点认为,用try catch包裹代码,会导致代码臃肿、降低程序性能,不建议用。本文将就此展开论述。
一、try catch是必要的吗?
try catch可以避免程序崩溃,提高程序健壮性
现实中,程序的健壮性其实也非常重要。比如说,如果一个程序能正确地处理输入数据中的非法字符,那这个程序就具有了非常好的健壮性。而在Java中,我们使用try catch来捕获和处理异常,就提高了程序的健壮性。换言之,try catch是很有必要的。
try catch提高了程序可读性
先抛开try catch,我们来看看if else。
if(condition){
//do something
}else{
//do something
}
这是if else最简单的结构。它的可读性不太好,所以在Java中,if else的更多形式通常如下所示:
if(condition){
//do something
}else if(condition2){
//do something
}else{
//do something
}
try catch提高了程序代码的可维护性
当我们程序中出现问题的时候,很容易定位问题所在。比如发生异常,我们直接查看异常信息,问题通常一目了然。但如果没有try catch,那查找问题就要麻烦很多。
二、哪些情况下不需要try catch?
对于需要对多个异常进行处理的情况,确实可以用多重if else来代替。但对于只有一种异常处理的情况,就建议用try catch。
比如,你在代码中访问一个文件。如果文件不存在,可能会抛出FileNotFoundException异常。这种情况下的正确写法就是:
try{
//访问文件
}catch(FileNotFoundException e){
//处理异常
}
但用if else的写法如下:
File file = new File("path/to/file.txt");
if(!file.exists()){
//处理异常
}else{
//访问文件
}
虽然代码变少了,但是可读性降低了,同时也不利于程序维护。
三、总结
try catch的意义在于处理错误,体现程序健壮性,提高代码可读性以及可维护性。慎重使用try catch只是针对多种异常情况的处理。如果只有一种异常,那还是应该使用try catch。