我想知道,它是一个good practice放置complete code内try block或我应该把only the code which I feel it will cause a specific exception?
我应该总是抓住基本的例外
代码1:try块中的完整代码
myFunction(){
try{
.........
Code with chance of OneException
.............
}catch(OneException e){
............
}catch(Exception e){
..............
}
}
Run Code Online (Sandbox Code Playgroud)
代码2:只在try块中有可能出现异常的代码
myFunction(){
.......
try{
Code with chance of OneException
}catch(OneException e){
............
}
............
}
Run Code Online (Sandbox Code Playgroud)
代码3:我是否应该始终捕获异常
myFunction(){
.......
try{
Code chance of OneException
}catch(OneException e){
............
}catch(Exception e){
..............
}
........
}
Run Code Online (Sandbox Code Playgroud)
除此之外(code1,code2和code3)哪一个最好?
我主要关注java和C++编码
一般来说,您应该只捕获您感兴趣的异常以及您可以处理的异常.那就是......捕获一个异常,你可以做一些事情,用户没有察觉到问题,或者明确有必要告诉用户这个问题.
对于所有其他异常,让他们弹出你明显记录的所有细节(堆栈跟踪等).注意,显然这并不意味着用户也应该看到异常输出而是一般错误.
告诉我,我假设当你写"OneException的代码机会"时,你知道如何处理OneException,但不是Exception,对吧?那么......只处理OneException.