调试

按 Ctrl+W+O调出 输出窗口

Debug.WriteLine();

Trace.WriteLine();

以上方法是将信息输出到输出窗口以便于查出错误,这两个的方法基本相同,不同的是前者的的信息在发布程序时,不作为程序的内容。好处是使程序体积小。由于在出现错误的时候不提醒用户哪里出错了,会给用户带来用户体验的损失,所有后者可以把信息发布到程序中。

 

Debug.Assert()

Trace.Assert()

用于中断模式  详情参照msdn

 

try

 {

 //执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容

}

 catch

 {

 //除非try里面执行代码发生了异常,否则这里的代码不会执行

}

finally

{

//不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally

 }

 

try-catch 语句由一个 try 块后跟一个或多个 catch 子句构成,这些子句指定不同的异常处理程序。

在同一个 try-catch 语句中可以使用一个以上的特定 catch 子句。这种情况下 catch 子句的顺序很重要,因为会按顺序检查catch 子句。将先捕获特定程度较高的异常,而不是特定程度较小的异常。

catch 块中可以使用 throw 语句再次引发已由 catch 语句捕获的异常。例如:

catch (InvalidCastException e) 
{
    throw (e);    // Rethrowing exception e
}

如果要再次引发当前由无参数的 catch 子句处理的异常,则使用不带参数的 throw 语句。例如:

catch
{
    throw;
}
 
 

// try_catch_ordering_catch_clauses.cs using System; class MainClass {     static void ProcessString(string s)     {         if (s == null)         {             throw new ArgumentNullException();         }     }

    static void Main()     {         try         {             string s = null;             ProcessString(s);         }         // Most specific:         catch (ArgumentNullException e)//第一种错误类型成立则执行代码块的代码         {             Console.WriteLine("{0} First exception caught.", e);         }         // Least specific:         catch (Exception e) //第一种错误类型成立则执行代码块的代码         {             Console.WriteLine("{0} Second exception caught.", e);       

}     } }

 
finally 块用于清除 try 块中分配的任何资源,以及运行任何即使在发生异常时也必须执行的代码。控制总是传递给 finally 块,与 try 块的退出方式无关
有一个导致异常的无效转换语句。当运行程序时,您收到一条运行时错误信息,但 finally 子句仍继续执行并显示输出。
catchfinally 一起使用的常见方式是:在 try 块中获取并使用资源,在 catch 块中处理异常情况,并在 finally 块中释放资源。
 

// try-finally
using System;
public class MainClass
{
    static void Main()
    {
        int i = 123;
        string s = "Some string";
        object o = s;

        try
        {
            // Invalid conversion; o contains a string not an int
            i = (int)o;
        }
        finally
        {
            Console.Write("i = {0}", i);       
        }
    }
}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值