在C# WinForm應用程序中,可以使用try-catch語句來處理異常。在try代碼塊中編寫可能引發異常的代碼,然后在catch代碼塊中處理異常并執行相應的邏輯。以下是一個簡單的示例:
try
{
// 可能引發異常的代碼
int a = 10;
int b = 0;
int result = a / b;
}
catch (DivideByZeroException ex)
{
// 處理除以零異常
MessageBox.Show("除數不能為零!");
}
catch (Exception ex)
{
// 處理其他異常
MessageBox.Show("發生了異常:" + ex.Message);
}
finally
{
// 可選的finally代碼塊,無論是否發生異常都會執行
MessageBox.Show("異常處理結束");
}
在上面的示例中,try代碼塊中進行了除法運算,如果除數為零會引發DivideByZeroException異常。在catch代碼塊中分別處理了除以零異常和其他異常,通過MessageBox顯示相應的提示信息。最后的finally代碼塊是可選的,在不管是否發生異常都會執行。
除了使用try-catch語句處理異常,還可以在應用程序的全局異常處理事件中處理未捕獲的異常。可以在Application.Run方法之前添加一個事件處理程序來捕獲未處理的異常:
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
MessageBox.Show("發生了未處理的異常:" + e.Exception.Message);
}
通過這種方式可以在整個應用程序中捕獲未處理的異常,并進行相應的處理。