什么时候用“catch”,什么时候用“throws”?
try {
//stuff
}
catch (MyException me) {
//stuff
}
相对
public void doSomething() throws MyException {
//stuff
}
在“抛出”的情况下,将我的捕获放在调用堆栈的哪里?
Main
----- Function 1
----- Function 2
----- Function 3 (generate exception)
如果我将异常从函数 3 传播到函数 2,为什么函数 2 不应该这样做?所以最后我将最终管理“main”中的所有异常,我认为将所有代码放在 try 块中并不是一个好的做法,不是吗?
那么在“catch”和“throws”之间进行选择的逻辑方式是什么?在第二种情况下,我应该将我的捕获放在调用堆栈中的什么位置?