.NET中的异常和异常处理
.NET中的异常(Exception)
.net中的中异常的父类是Exception,大多数异常一般继承自Exception。
可以通过编写一个继承自Exception的类的方式,自定义异常类!
异常处理机制
Try
{
可能发生异常的代码
后续代码
}
Try以外的代码
catch(Exception e)
{
}
finally
{
}
上述代码描述如下
1.谁能执行 在异常处理中,一旦try里面有了问题,程序会放弃异常的后续代码直接跳到catch中。
执行完了catch中的代码,继续执行Try以外的代码。
2.关于catch()中的参数e
e就是发生异常的异常类对象,可以任意取名。不是必须叫e的。
3.只抛一个
一块try中的代码只能抛出一个异常。
为什么呢?
因为一旦异常就抛出了啊,后面有也不执行了呀!
4.获取信息
可以通过 e.Message获取异常信息
5.必须执行
finally 无论如何都会执行
6.可以没有catch
可以只有 try catch
也可以只有try finally
优秀的异常处理作风
1.不要逃避问题不要只把异常catch住,什么都不做,或者只是打印一下,这不是优秀的“异常处理”作风。
不知道怎么处理异常,就不要catch。让他暴露出来。既然发生异常了,问题就肯定是有的,逃避不是办法,直面他,才能解决他。尤其在分层的项目中。会让程序陷入深度的逻辑混乱状态。而问题被藏起来了,你甚至不知道哪里发生了问题。
2.如果真的遇到乱try、catch的程序员怎么办?
vs很强大,它想到了这种情况。点击【调试】【异常】进入这样一个工具,选中第二行 的引发选项。
这样在调试的时候,无论是否try catch都会暴漏出异常。我们想要的信息就找到了。
.NET中的异常和异常处理的更多相关文章
- JAVA中的异常(异常处理流程、异常处理的缺陷)
异常处理流程 1)首先由try{...}catch(Exception e){ System.out.println(e); e.printStackTrace(); }finally{...}结构 ...
- [置顶] Ajax程序:处理异步调用中的异常(使用Asp.Net Ajax内建的异常处理方法)
无论在Window应用程序,还是Web应用程序以对用户友好的方式显示运行时的异常都是很有必要,尤其对于可能有很多不确定因素导致异常的Web应用程序;在传统的Web开发中,处理异常的方式——设计专门一个 ...
- springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑。为了区别不同的异常通常根据异常类型自定义异常类,这里我们创建一个自定义系统异常,如果controller、service、dao抛出此类异常说明是系统预期处理的异常信息。
springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑. 1.1 异常处理思路 系统中异常包括两类:预期异常和运行时异常RuntimeEx ...
- Laravel 5.1 中的异常处理器和HTTP异常处理 abort()
原文 http://laravelacademy.org/post/1867.html 错误和异常是处理程序开发中不可回避的议题,在本地开发中我们往往希望能捕获程序抛出的异常并将其显示打印出来,以便 ...
- Laravel 5.4 中的异常处理器和HTTP异常处理实例教程
错误和异常是处理程序开发中不可回避的议题,在本地开发中我们往往希望能捕获程序抛出的异常并将其显示打印出来,以便直观的知道程序在哪里出了问题并予以解决,而在线上环境我们不希望将程序错误或异常显示在浏览器 ...
- 使用try_catch_finally处理流中的异常和JDK7流中的异常处理
在jdk1.7之前使用try_catch_finally处理流中的异常 格式: try{ 可能会出现异常的代码 }catch(异常类变量 变量名){ 异常的处理逻辑 }finally{ 一定会执行的代 ...
- 【Java心得总结二】浅谈Java中的异常
作为一个面向对象编程的程序员对于 下面的一句一定非常熟悉: try { // 代码块 } catch(Exception e) { // 异常处理 } finally { // 清理工作 } 就是面向 ...
- 第11章 Java异常与异常处理
1.Java异常简介 1.什么是异常异常出现的时候代码会无法正常运行下去,会产生各种问题2.捕捉异常的作用提早发现异常,方便查找问题,并给出解决方法3.Java中的异常1.Java中所有不正常的类都是 ...
- python虚拟机中的异常流控制
异常:对程序运行中的非正常情况进行抽象.并且提供相应的语法结构和语义元素,使得程序员能够通过这些语法结构和语义元素来方便地描述异常发生时的行为. 1.Python中的异常机制: 1.1Python虚拟 ...
随机推荐
- 浅析GCC下C++多重继承 & 虚拟继承的对象内存布局
继承是C++作为OOD程序设计语言的三大特征(封装,继承,多态)之一,单一非多态继承是比较好理解的,本文主要讲解GCC环境下的多重继承和虚拟继承的对象内存布局. 一.多重继承 先看几个类的定义: 01 ...
- 敏捷冲刺DAY6
一. 每日会议 1. 照片 2. 昨日完成工作 3. 今日完成工作 4. 工作中遇到的困难 对于可视控件,是能进行设计的,但是对于不可视组件,比如AdoConnection怎么才能设计.但是我看del ...
- 第五周PSP &进度条
团队项目PSP 一:表格 C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论用户界面 9:27 10:42 18 57 60 分析与 ...
- (转)Linux 命令--查看物理CPU个数、核数、逻辑CPU个数
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| ...
- 编写shell时,遇到let: not found错误及解决办法
#!/bin/bashi=1sum=0while [ $i -le 100 ]do let sum=sum+$i let i++ done 在写一个简单的循环脚本时,报错 let: not fou ...
- Django之logging日志
简介 Django使用python自带的logging 作为日志打印工具.简单介绍下logging. logging 是线程安全的,其主要由4部分组成: Logger 用户使用的直接接口,将日志传递给 ...
- CPU测试--通过proc获取CPU信息
adb shell cat /proc/stat | grep cpu > totalcpu0 此处第一行的数值表示的是CPU总的使用情况,所以我们只要用第一行的数字计算就可以了.下表解析第一行 ...
- Idea报错Command line is too long
需要在该项目文件夹下.idea/workspace.xml中添加 <component name="PropertiesComponent"> ... <prop ...
- Struts按着配置文件的加载的顺序,后面文件和前面文件相同的配置,后面的会把前面的文件的值覆盖
Struts按着配置文件的加载的顺序,后面文件和前面文件相同的配置,后面的会把前面的文件的值覆盖
- 【loj6307】「雅礼国庆 2017 Day1」Clique 贪心
题目描述 数轴上有 $n$ 个点,第 $i$ 个点的坐标为 $x_i$ 权值为 $w_i$ .两个点 $i,j$ 之间存在一条边当且仅当 $|x_i−x_j|\le w_i+w_j$ . 你需要求出这 ...
