本来就是练习异常处理的try..catch..finally语句,但当调试器运行到异常时却提示“异常”而中断,下面的语句无法继续执行,那这try..catch..finally还有啥存在的意义。求解如何正常运行该代码?
这是调试器自己提示的异常:(无论是逐句,还是继续执行,都不能进行“throw (new System.Exception());”之后的代码)
这是代码:
using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Text;
namespace ConsoleApplication4 {
class Program { static string[] eTypes = { "none", "simple", "index", "nested index" }; static void Main(string[] args) { foreach (string eType in eTypes) { try { Console.WriteLine("Main() try block reached."); Console.WriteLine("ThrowException(\"{0}\") called.", eType); ThrowException(eType); Console.WriteLine("Main() try block continues."); } catch (System.IndexOutOfRangeException e) { Console.WriteLine("Main() general catch block reached."); } finally { Console.WriteLine("Main() finally block reached."); } Console.WriteLine(); } Console.ReadKey(); }
// 这是后面的代码,由于提问字数限制,所以用图片显示出来,不好意思了
这个程序不是我写的,是从书上摘录的,为的就是学习在程序异常时,try..catch..finally语句的使用及其处理过程。就是用throw故意丢出错误,来看其处理的。
从道理上来说,是可以顺畅的执行,而不应该再报错,但实际运行确报错。所以本人猜想调试器的问题,某些功能要停止掉。
就算程序没有问题,你用throw语句同样会报错