我不是高手,知道一点,怎么给你讲啊。
异常就是应用程序出错,异常处理就是为了使程序更加健壮,而采取的一种应付错误码方式,采用异常处理之后,程序不会因为某个错误而忽然报错,并无法继续,而是略过错误的地方,继续执行程序。
一般采用try{}catch(){
}
公共语言运行库提供一种异常处理模型,该模型基于对象形式的异常表示形式,并且将程序代码和异常处理代码分到 try 块和 catch 块中。可以有一个或多个 catch 块,每个块都设计为处理一种特定类型的异常,或者将一个块设计为捕捉比其他块更具体的异常。如果应用程序将处理在执行应用程序代码块期间发生的异常,则代码必须放置在 try 语句中。try 语句中的应用程序代码是 try 块。处理由 try 块引发的异常的应用程序代码放在 catch 语句中,称为 catch 块。零个或多个 catch 块与一个 try 块相关联,每个 catch 块?ù包含一个确定该块处理的异常类型的类型筛选器。在 try 块中出现异常时,系统按所关联 catch 块在应用程序代码中出现的顺序搜索它们,直到定位到处理该异常的 catch 块为止。如果某 Catch 块的类型筛选器指定 T 或任何派生出 T 的类型,则该 catch 块处理 T 类型的异常。系统在找到第一个处理该异常的 catch 块后即停止搜索。因此,正如本节后面的示例所演示的那样,在应用程序代码中处理某类型的 catch 块必须在处理其基类型的 catch 块之前指定。处理 System.Exception 的 Catch 块最后指定。如果当前 try 块所关联的所有 catch 块均不处理该异常,且当前 try 块嵌套在当前调用的其他 try 块中,则搜索与下一个封闭 try 块相关联的 catch 块。如果没有找到用于该异常的 catch 块,则系统搜索当前调用中前面的嵌套级别。如果在当前调用中没有找到用于该异常的 catch 块,则将该异常沿调用堆栈向上传递,搜索上一个堆栈帧来查找处理该异常的 catch 块。继续搜索调用堆栈,直到该异常得到处理或调用堆栈中没有更多的帧为止。如果到达调用堆栈顶部却没有找到处理该异常的 catch 块,则由默认的异常处理程序处理该异常,然后应用程序终止。你去看SDK文档吧。上面详细着呢。

解决方案 »

  1.   

    除了使用try{}catch(){},
    还可使用try{}catch(){}finally{},
    finally用来做善后工作,如果有的话是一定会执行的,即使使用goto语句也无法跳过,
    一般引发异常可以使用throw,用try来捕获,
    throw的使用方法为throw [expression],
    其中expression是一个System.Exception类或其派生类的对象。
    throw也可以在catch语句块中使用,表示再次引发和被catch语句所处理的异常类型相同的异常,这时expression部分可以省略