C#執行緒Thread發生例外處理Exception

C#執行緒Thread發生例外處理Exception

這篇介紹在C#上使用Thread需注意例外處理造成的程式閃退。

會造成例外處理的case,若沒有C:\a.txt檔案,程式會出錯並閃退。

1
2
3
4
5
6
new Thread(FileCopy).start();

private static FileCopy()
{
File.Copy("C:\a.txt", "C:\b.txt", true);
}

Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//檢查檔案存在才執行該執行緒
if (File.Exists("C:\a.txt"))
{
new Thread(FileCopy).start();
}

//加入try catch 並記錄log
private static FileCopy()
{
try
{
File.Copy("C:\a.txt", "C:\b.txt", true);
}
catch(Exception ex)
{
Console.WriteLine(Convert.toString(ex));
}
}