Cra*_*ton 17 c# exception-handling try-catch
考虑以下:
try {
FileStream fileStream = new FileStream("C:\files\file1.txt", FileMode.Append); }
catch (DirectoryNotFoundException e)
{ MessageBox.Show("Directory not found. " + e.Message); }
catch (IOException e)
{ MessageBox.Show("Other IO Error. " + e.Message); }
catch (Exception e)
{ MessageBox.Show("Other Error. " + e.Message); }
Run Code Online (Sandbox Code Playgroud)
是否DirectoryNotFoundException所有三个catch条款或第一个条款都处理异常?
Jon*_*eet 27
只是第一个.该异常不会传播到所有匹配的catch子句.
从C#4规范,第8.9.5节:
catch指定异常类型的第一个子句或异常类型的基本类型被视为匹配.[...]如果找到匹配的catch子句,则通过将控制转移到该catch子句的块来完成异常传播.
这里"完成"部分表示在控制转移后,这是特殊处理的结束,有效.
| 归档时间: |
|
| 查看次数: |
8994 次 |
| 最近记录: |