概要
情况分析 | 异常后的代码 | finally的代码 |
未+try chatch | 不执行 | 执行 |
try chatch | 执行 | 执行 |
提前return | - | 执行 |
代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 异常实验 { class A { public void Func() { Console.WriteLine("A func"); } } class Program { static void Main(string[] args) { Console.WriteLine("异常实验"); Program p = new Program(); p.main(); Console.ReadKey(); } private void main() { test1(); Console.WriteLine(""); test2(); Console.WriteLine(""); test3(); Console.WriteLine(""); test4(); } private void test1() { A a = null; try { a.Func(); } catch(Exception ex) { //Console.WriteLine("ex.ToString():" + ex.ToString()); Console.WriteLine("ex.Message:" + ex.Message); } finally { Console.WriteLine("finally"); } Console.WriteLine("异常后面的代码"); } private void test2() { Console.WriteLine("异常实验-提前return"); A a = null; try { a.Func(); } catch (Exception ex) { //Console.WriteLine("ex.ToString():" + ex.ToString()); Console.WriteLine("ex.Message:" + ex.Message); return; } finally { Console.WriteLine("finally"); } Console.WriteLine("异常后面的代码"); } private void test3() { Console.WriteLine("异常实验 没有异常"); A a = new A(); try { a.Func(); } catch (Exception ex) { //Console.WriteLine("ex.ToString():" + ex.ToString()); Console.WriteLine("ex.Message:" + ex.Message); return; } finally { Console.WriteLine("finally"); } Console.WriteLine("异常后面的代码"); } private void test4() { try { Console.WriteLine("异常实验 外部try catch"); A a = null; a.Func(); Console.WriteLine("异常后面的代码"); } catch (Exception ex) { } } } }
运行结果