C#中的try catch 和finally

在c#中处理错误经常会使用这几个关键字。本文介绍一下其用法

这三个关键字try是必定要用的,要不然就失去了意义。然后catch和finally可以不用但是要注意遵循原则

一个或多个catch的时间可以不用finally但是也可以用。

如果没有catch的时间必须要用finally。

其中每个关键字都对应的有自己的代码块

如这样的形式

try
{
   //code
}
catch
{
  //code
}
finally
{
   //code
}  

现在开始说正事了

try代码块主要包括出错的代码如
 i = Convert.ToInt32(str);

不知道是否能转化成功。
catch是处理异常的代码

finally是处理异常之后要做的事情

static void Main(string[] args)
        {
            int i=1 ;
            string str = "dfdfs";
            try
            {
                i = Convert.ToInt32(str);//有异常的地方
            }
            catch //(Exception e)
            {
                //Console.WriteLine(e.Message);
                i = 3;//处理异常
                //throw new Exception("转化失败");
            }
            /*
              这里可以添加上,根据异常的类型来匹配,有点像case。关于异常的类型有很多
//System 

ArgumentNullException //参数异常
ArgumentOutOfRangeException //参数异常
DivideByZeroException //除数为0异常
IndexOutOfRangeException //索引超出范围的异常
NullReference-Exception//参数异常
OverflowException //溢出异常
StackOverflowException //堆溢出异常 

//System.IO 

DirectoryNotFoundException//找不到路径的异常
EndOfStreamException //结束流的异常
FileNotFoundException//找不到文件异常
PathToo-LongException //路径太长异常 

//System.Data 

DuplicateNameException
InvalidConstrainException
InvalidExpressionException
Missing-PrimaryKeyException
NoNullAllowed-Exception
ReadOnlyException 

//System.Runtime.InteropServices 

InvalidComObjectException
InvalidOleVariantTypeException
SEHException
              catch(ExceptionType e )
               {
             //异常处理
               }
             */
            finally
            {
                Console.WriteLine(i.ToString());  

            }
}  
时间: 2024-08-20 00:55:47

C#中的try catch 和finally的相关文章

5.27 java中try,catch,throw,throws,finally

http://blog.sina.com.cn/s/blog_4f1c99de0100tyty.html try{//代码区}catch(Exception e){//异常处理}代码区如果有错误,就会返回所写异常的处理. 首先要清楚,如果没有try的话,出现异常会导致程序崩溃.而try则可以保证程序的正常运行下去. Java的异常处理是通过5个关键字来实现的:try,catch,throw,throws,finally.JB的在线帮助中对这几个关键字是这样解释的:Throws:  Lists t

在SqlServer中使用Try Catch(转)

今天在写sql中出现了!我想在sql使用trycatch吧! 哎..但是语法又记不住了! 那就清楚我们的google大师吧! 嘿,网上关于在sql中使用Try Catch的还有真不少的文章! 闲话就少了! 今天记录下来以便下次使时查阅! 创建错误日志表: CREATE TABLE ErrorLog(errNum INT,ErrSev NVARCHAR(1000),ErrState INT,ErrProc NVARCHAR(1000),ErrLine INT, ErrMsg NVARCHAR(20

在Sql中使用Try Catch

原文:在Sql中使用Try Catch 今天在写sql中出现了!我想在sql使用trycatch吧! 哎..但是语法又记不住了! 那就清楚我们的google大师吧! 嘿,网上关于在sql中使用Try Catch的还有真不少的文章! 闲话就少了! 今天记录下来以便下次使时查阅! 创建错误日志表: CREATE TABLE ErrorLog(errNum INT,ErrSev NVARCHAR(1000),ErrState INT,ErrProc NVARCHAR(1000),ErrLine INT

【Java学习笔记之三十三】详解Java中try,catch,finally的用法及分析

这一篇我们将会介绍java中try,catch,finally的用法 以下先给出try,catch用法: try { //需要被检测的异常代码 } catch(Exception e) { //异常处理,即处理异常代码 } 代码区如果有错误,就会返回所写异常的处理. 首先要清楚,如果没有try的话,出现异常会导致程序崩溃.而try则可以保证程序的正常运行下去,比如说: try { int i = 1/0; } catch(Exception e) { ........ } 一个计算的话,如果除数

try-catch-finally 中哪个部分可以省略?try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?

try-catch-finally 中哪个部分可以省略? finally这部分可以省略 try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗? 会执行 1.不管有没有异常,finally中的代码都会执行2.当try.catch中有return时,finally中的代码依然会继续执行3.finally是在return后面的表达式运算之后执行的,此时并没有返回运算之后的值,而是把值保存起来,不管finally对该值做任何的改变,返回的值都不会改变

Java中的try catch finaly先后调用顺序

自我总结,有什么不足或好的方案,希望大家给予纠正,感激不尽! 目的:try catch finaly的顺序执行,和大家复习一遍. 方法:debug来确认执行顺序.(需要引入junit包) 废话不多说,debug是检验代码执行顺序的唯一标准,哈哈... 测试一: 新建测试类:ExceptionTest package com.core.test007; import org.junit.Test; public class ExceptionTest { @Test public void mai

C#中的try catch finally

try中的程序块是有可能发生错误的程序块,catch中的程序块是当发生错误的时候才会执行的代码块,finally中的程序块是无论是否发生错误都会执行的代码块. 示例程序: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Sample_01_CA { public class Complex { static void Main(string[] args

Java中的try catch finally

在任何一本Java教材中,异常处理都是作为单独的章节讲解的,足可见其分量. 而真正的能够用好这个知识,只有经历实际项目的开发才会有点体会. 1.try catch finally的执行顺序 (1).一般情况下:try----catch----finally呢 (2).如果try中有return:try----finally----return (3).如果catch中有return:try----catch ----finally----return 在后两种情况下,reurn会被暂存在栈里面,

在java中的Try Catch块-------------异常处理(2)

1. Try块是什么? Try块是一块可能产生异常的代码块,一个Try块可能跟着Catch块或者Finally块,或者两者. Try块的语义: try{ //statements that may cause an exception } 2. Catch块是什么? 一个Catch块关联一个Try块,如果在Try块中有一个特定类型的异常发生,则响应的Catch块会执行,例如, 如果在Try块中arithmmetic exception发生,那么对应arithmmetic exception的Ca