我有類似的代碼如下:不拋出異常?
try{
func1();
}
catch(Exception e){
/Do something
}
static func1(){
func2();
}
static func2(){
//Exception thrown here
System.IO.StreamReader file = new System.IO.StreamReader(filePath);
}
當異常是由代碼FUNC2行()我得到的catch子句中沒有通知拋出。我沒有明確地拋出任何東西,我只是定期的函數聲明是靜態的 - 在任何地方都不會出現「throw」。
爲什麼不是異常向上傳播到catch語句?
把'try/catch'放在'func2'的周圍。另外你爲什麼要通過'func1'來調用'func2'?爲什麼不直接調用'func2'? –
如果沒有異常被明確拋出,你怎麼知道'func2'會導致異常? –
您是否試圖從'func2'中顯式拋出'Exception'? –