概要
情况分析 | 异常后的代码 | 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) {
}
}
}
}
运行结果