C#尝试,抓住,最后,扔
示例
try,,catch和finally,并throw允许您处理代码中的异常。
var processor = new InputProcessor(); //try块中的代码将被执行。如果在执行过程中发生异常 //此代码,执行将传递到与异常类型相对应的catch块。 try { processor.Process(input); } //如果在try块期间抛出FormatException,则此catch块 //将被执行。 catch (FormatException ex) { //Throw是一个关键字,它将手动引发异常,从而触发任何 //等待那个异常类型。 throw new InvalidOperationException("Invalid input", ex); } //catch可用于捕获所有或任何特定的异常。这个捕获块 //没有指定类型,则捕获尚未捕获的任何异常 //在先前的捕获块中。 catch { LogUnexpectedException(); throw; //重新引发原始异常。 } //在所有try-catch块都执行完之后,将执行finally块。尝试之后 //成功运行所有命令或捕获了所有异常之后。 finally { processor.Dispose(); }
注:该return关键字可以用在try块,和finally(只返回前)块仍将执行。例如:
try { connection.Open(); return connection.Get(query); } finally { connection.Close(); }
该语句将在返回结果之前执行。connection.Close()connection.Get(query)