今天看代码书的时候,有用到try--catch--finally,然后就查了下具体的注意事项和应用。

简单来说就是:

  try {

    //有可能出错误的代码或者代码片段

       }

  catch{

    //若try内代码有误,此处会获取错误

  }

  finally{

    //可以没有,也可以只有一个。

    //为了保证程序的稳定性,强制执行的一段程序片;

    //无论代码是否有错误/发生异常,都会在处理异常结构的最后走这一步

    //有一种例外情况:若没有catch语句块,那么finally块就是必须的。

  }
try后必须跟catch,不跟是不能通过编译,finally是强制程序片,比如强制关闭数据库连接和销毁数据库对象
1、将预见可能引发异常的代码包含在try语句块中。
2、如果发生了异常,则转入catch的执行。catch有几种写法:
catch
这将捕获任何发生的异常。
catch(Exception e)
这将捕获任何发生的异常。另外,还提供e参数,你可以在处理异常时使用e参数来获得有关异常的信息。
catch(Exception的派生类 e)
这将捕获派生类定义的异常,例如,我想捕获一个无效操作的异常,可以如下写:
catch(InvalidOperationException e)
{
....
}
这样,如果try语句块中抛出的异常是InvalidOperationException,将转入该处执行,其他异常不处理。

.net按照你catch的顺序查找异常处理块,如果找到,则进行处理,如果找不到,则向上一层次抛出。如果没有上一层次,则向用户抛出,此时,如果你在调试,程序将中断运行,如果是部署的程序,将会中止。

如果没有catch块,异常总是向上层(如果有)抛出,或者中断程序运行。

3、finally
即使在try块内用return返回了,在返回前,finally总是要执行。

如果你不希望在这里处理异常,而当异常发生时提交到上层处理,但在这个地方无论发生异常,都要必须要执行一些操作,就可以使用try finally,
 
 return是可以放在try语句块中的。但不管在什么时机返回,在返回前,finally将会执行。

finally 内最好不要有return,以防程序提起退出,返回值不是try 或catch中保存的值。

总结:try--catch--finally,that's all.

C# try catch finally简单介绍和应用的更多相关文章

  1. Lucene.net站内搜索—4、搜索引擎第一版技术储备(简单介绍Log4Net、生产者消费者模式)

    目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...

  2. WebSocket简单介绍

    Java后端WebSocket的Tomcat实现 一.WebSocket简单介绍 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随着HTML5的诞生,WebSoc ...

  3. MessageDigest简单介绍

    本文博客原文 參考文章:http://blog.sina.com.cn/s/blog_4f36423201000c1e.html 一.概述 java.security.MessageDigest类用于 ...

  4. 第一次玩博客,今天被安利了一个很方便JDBC的基于Spring框架的一个叫SimpleInsert的类,现在就来简单介绍一下

    首先先对这段代码的简单介绍,我之前在需要操作JDBC的时候总是会因为经常要重新写SQL语句感到很麻烦.所以就能拿则拿不能拿的就简单地封装了一下. 首先是Insert.Spring框架的JDBC包里面的 ...

  5. 转载 mvc:message-converters简单介绍 https://www.cnblogs.com/liaojie970/p/7736098.html

    mvc:message-converters简单介绍 说说@ResponseBody注解,很明显这个注解就是将方法的返回值作为reponse的body部分.我们进一步分析下这个过程涉及到的内容,首先就 ...

  6. Android Fragment(三)ListFragment简单介绍以及Fragment之间通信

    一.Fragment通信简单介绍:Fragments之间是不能够直接通信的,他们之间的通信是通过Activity这个中间件来通信的, 为了让Fragment跟它的Activity通信,我们可以在Fra ...

  7. dubbo学习过程、使用经验分享及实现原理简单介绍

    一.前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下. 整理这篇文章差不 ...

  8. 【Dubbo基础】dubbo学习过程、使用经验分享及实现原理简单介绍

    一.前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下. 整理这篇文章差不 ...

  9. 简单介绍aspose-words-18.10-jdk16做导出word

    今天在搞那个用aspose words for java做导出word的功能,顺便简单介绍这个怎么用,我有两个版本的破解版,就都做简单介绍怎么用 警告:请勿用于商业用途,仅供学习研究使用,如有任何版权 ...

随机推荐

  1. imp高版本的dmp文件报错问题

    imp高版本的dmp文件报错问题   导出方:oracle 11R2  www.2cto.com     导入方:oracle 10R2   通过imp导入时提示如下:     解决方法:   通过编 ...

  2. centos7 部署 docker compose

    =============================================== 2019/4/10_第1次修改                       ccb_warlock == ...

  3. C#控制台中创建数据库连接

    与数据库的连接主要有以下三种类: sqlconnection:数据库连接类: sqlcommand:数据库操作: sqldatareader:数据库读取: SqlDataReader dr = cmd ...

  4. ocp linux 基础要点

    基本命令: 创建/修改/删除用户    useradd/usermod/userdel 创建/修改/删除用户组    groupadd/groupmod/groupdel    修改所属用户/所属用户 ...

  5. 【转】js中的事件委托或是事件代理详解

    起因: 1.这是前端面试的经典题型,要去找工作的小伙伴看看还是有帮助的: 2.其实我一直都没弄明白,写这个一是为了备忘,二是给其他的知其然不知其所以然的小伙伴们以参考: 概述: 那什么叫事件委托呢?它 ...

  6. jmeter常用组件

    测试计划(Test Plan) 是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器. 线程组(Thread Group) 代表一定数量的并发用户,它可以用来模拟并发用户发送请 ...

  7. python 全栈开发,Day105(路飞其他数据库表结构,立即结算需求)

    考试第三部分:Django 16.  列列举你熟悉的Http协议头以及作用.(1分) Accept-Charset: 用于告诉浏览器,客户机采用的编码 Host: 客户机通过这个头告诉服务器,想访问的 ...

  8. 使用jdk中提供的排序方式

    package com.bjpowernode.t01; import java.util.Arrays; /** * 使用jdk中提供的排序方式 * */public class TestArray ...

  9. ef 数据库连接字符串加密

    public testContext() : base(GetConnection(), true) { } public static DbConnection GetConnection() { ...

  10. 怎么在项目中使用前端包管理器bower和构建工具gulp

    下面以WeUI(微信官方网页开发样式库)介绍一下,怎么把WeUi引入到自己的项目中,我的开发环境Visual Studio 2012,当然了Visual Studio 2015对此已有了更好的支持(h ...