zoukankan      html  css  js  c++  java
  • 第五讲 C#中的异常处理

    *异常类型
    每种异常类型都是一个类
    两种大分类
    System.SystemException
    System.ApplicactionException


    *.NET中异常处理方式
    异常被对象所表现而不是错误代码。
    异常的产生是通过throwing一个该异常的对象实现的。
    异常的捕获是通过catch该异常的对象。
    命名上可以读出是哪类异常:DivideByZeroException
    *捕获异常try-catch
    当代码段有可能发生异常的时候,我们应该把该代码放置在try中。
    捕获到异常后的处理方法放置到catch中。
    try
    {
     s=//user's input;
     i=int.Parse(s);
    }
    catch
    {
     messageBox.show("Invalid input ,please try again.");
     return;
    }
    为每个可能的Exception定制解决方法

    try
    {
     s=//user's input;
     i=int.Parse(s);
    }
    catch(FormatException)
    {
     MessageBox.Show("Please enter a numeric value.");
     return;
    }
    catch(OverflowException)
    {
     MessageBox.Show("Value is too Large/Small!");
     return;
    }
    catch(Exception ex)
    {
     string msg;
     msg=string.Format("Invalid input .\n\n[Error={0}]",ex.Message);
     return;
    }
    异常处理的系统流程
    当程序产生一个异常的时候,它会自动抛出异常,此时.NET进入“异常处理模式”
    .NET查找后面是否存在catch子句
    if(catch block if found)
     .NEt executes catch & "exception mode" is over
    else
     .NET teminates execution

    暗示
    如果你不想让程序被错误所终止,你要在适当的地方使用try-catch
    如果你想让异常处理继续,你要在catch子句中写出一些具体的方法。
    空的cactch段相当于给异常放行。
    在进行完catch子句后,程序将继续执行除非
    return 返回
    throw  再次抛出异常
    exit   程序退出

    try-catch可以嵌套
    try
    {
     <<Perform operation(s)>>
    }
    catch(Exception ex)
    {
     try
     {
       <<try various recovery strategies>>
     }
     catch
     {
      throw ex;
     }
    }

    *异常捕获的顺序
    必须正确排列捕获异常的catch子句
    范围小的Exception放在前面的catch子句
    即如果Exception之间有继承关系,把子类放在前面的catch子句中,把父类放到后面的catch子句中。

    使用try-catch-finally来确保一些收尾工作。

    设计自己的异常
    创建独特的异常,使它适合于特定的应用程序
    public class TooManyItemsException:Exception
    {
     public TooManyItemsException():base(@"You add too many items to

    this container.")()
    }

    public class TooManyItemsTest
    {
     public void GenerateException(int i)
     {
      try
       {
        if(i>2) throw new TooManyItemsException();
       }
     }
    }

  • 相关阅读:
    How to Create a site at the specified URL and new database (CommandLine Operation)
    Using Wppackager to Package and Deploy Web Parts for Microsoft SharePoint Products and Technologies
    SQL Server Monitor v0.5 [Free tool]
    How to build Web Part
    Deploy web part in a virtual server by developing a Web Part Package file(.cab)
    How to recreate "sites" link if you delete it accidentally
    SharePoint Portal Server管理匿名访问设置
    Monitor sql connection from .Net SqlClient Data Provider
    Brief installation instruction of Sharepoint Portal Server
    How to Use SharePoint Alternate URL Access
  • 原文地址:https://www.cnblogs.com/iceberg2008/p/1398911.html
Copyright © 2011-2022 走看看