[英]Exception not throwing?
我的代碼類似於以下內容:
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語句?
不,代碼很好。 您的真實代碼中有一些您沒有顯示給我們。 該異常傳播良好:
using System;
static class Program {
static void Main() {
try{
func1();
} catch(Exception e) {
// works fine: FileNotFoundException
Console.WriteLine(e);
}
}
static void func1(){
func2();
}
static void func2() {
string filePath = "doesnot.exist";
System.IO.StreamReader file = new System.IO.StreamReader(filePath);
}
}
考生:
try
東西都值得懷疑-高音檢查一下 異常將“冒泡”,直到被捕獲或使您的應用崩潰。
最好的選擇是使用調試器。 確保已將其設置為在HANDLED異常上停止(調試/異常/選中“公共語言運行時異常”上的“引發”框)。
現在運行您的代碼。 如果func2引發異常-您的代碼將中斷; 不管是否處理。 您可以單步執行代碼,然后查看如何處理它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.