C# Note34: 异常机制相关小点
1.使用throw和throw ex抛出异常的区别
通常,我们使用try/catch/finally语句块来捕获异常,那么在抛出异常的时候,使用throw和throw ex有什么区别呢?
假如,按顺序调用以下几个方法:
- 在Main方法中调用Method1方法,try/catch捕获异常
- 在Method1方法中调用Method2方法,try/catch捕获异常
- 在Method2方法中故意抛出异常,try/catch捕获异常
使用throw抛出异常:
static void Main(string[] args){try{Method1();}catch (Exception ex){Console.WriteLine(ex.StackTrace.ToString());}Console.ReadKey();}static void Method1(){try{Method2();}catch (Exception ex){ throw;}}static void Method2(){try{throw new Exception("来自方法2的异常");}catch (Exception ex){ throw;}}
结果表明:使用throw抛异常,会把发生在Method2方法、Method1方法和Main方法中的异常全部抛了出来。
如果在Method1方法中,改用throw ex抛出异常,则只会把Method1方法和Main方法中的异常抛出来。
总结:获取最完整的StackTrace信息,请使用throw抛出异常,这样可以知道异常到底来自哪个方法。
可参考:Is there a difference between “throw” and “throw ex”?
2.异常机制及throw与throws的区别
转载于:https://www.cnblogs.com/carsonzhu/p/8399633.html
C# Note34: 异常机制相关小点相关推荐
- 为什么要使用异常及java异常的使用--及js、php、golang的异常机制
为什么要使用异常 使用场景引入 假设我们在用户操作前,要判断用户登录是否过期以及是否被禁言.那么,自然而然需要写一个判断登录是否成功,以及如果没有登录引导用户去登录的函数.然而,普通的函数的retur ...
- C++异常机制的实现方式和开销分析(作者:白杨)
C++异常机制的实现方式和开销分析 白杨 http://baiy.cn 在我几年前开始写<C++编码规范与指导>一文时,就已经规划着要加入这样一篇讨论 C++ 异常机制的文章了.没想到时隔 ...
- java深入浅出解析异常机制
java中的异常处理的目的在于通过使用少量的代码,使得程序有着强大的鲁棒性,并且这种异常处理机制会让你变得非常自信:你的应用中没有你没处理过的错误.处理异常的相关手法看起来是这么的难懂,但是如果掌握的 ...
- Java 语言基础(异常机制和File类,IO流,多线程,网络编程,反射机制)
原文:Java 语言基础(异常机制和File类,IO流,多线程,网络编程,反射机制) 异常机制和File类 异常机制 基本概念 异常就是"不正常"的含义,在 Java 语言中主要指 ...
- Java异常机制的最佳实践
文章目录 1 异常概念 1.1 历史中所谓的"异常" 解决方案 2 基本异常 简单的例子 抛出异常后 抛出异常的简单例子 异常模型的观点 异常参数 3 异常捕获 3.1 try 块 ...
- Java的知识点19——异常机制Exception
异常(Exception)的概念 异常指程序运行过程中出现的非正常现象,例如用户输入错误.除数为零.需要处理的文件不存在.数组下标越界等. Java是采用面向对象的方式来处理异常的.处理过程: 1. ...
- Java基础篇:异常机制
目录: 一.为什么使用异常: 二.异常体系: 三.异常的捕捉--try.catch.finally: 四.关于异常的题: 五.自定义异常: 六.异常链: 七.异常的使用误区: 八:throw.thro ...
- [03] 为什么要使用异常机制
因为代码经验和见识等原因,说实话现在对于异常的使用,我也算是理解甚少.为什么用?什么时候用?即便是在查阅了部分资料以后,也只能在这里提炼出部分自己能够理解的,以供参考和讨论. 1.使用异常的好处 1. ...
- java 异常机制_深入理解Java异常处理机制
一.引子 try-catch-finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的"教训"告诉我,这个东西可不是想象中 ...
最新文章
- java beetl 视频_08.Beetl自定义方法以及直接访问java类方法---《Beetl视频课程》
- append 降低数组位数_腿粗有理!研究发现腿部脂肪多,能大幅降低患高血压的风险!...
- 高性能的MySQL(1)锁和MVCC
- 【数据结构与算法】之深入解析“整数转罗马数字”的求解思路与算法示例
- 分布式数据库相关概念介绍
- html 科幻模板,html5酷炫宇宙科幻周年庆典专题动画模板
- EM Algorithm
- matlab仿真卫星导航接收机信号干扰,卫星导航软件接收机多采样率信号处理技术...
- 苹果mac屏幕录像软件:ScreenFlow
- C#数组Array的基础知识及二位数组和数组的数组的区别
- MIT 最新 AI 医疗系统公布:“重症监护室干预” 与”电子医疗档案模型迁移“...
- 南方cass字体样式设置_cass改变字体格式 cass字体样式管理器
- 好看的PPT导航栏有哪些制作技巧
- R 包 rgl 安装失败, 报错 X11 not found but required, configure aborted 及解决方法
- ShowWindow函数
- 认证 (authentication) 和授权 (authorization) 的区别
- FIDO android客户端认证
- php订单超过未支付,商城订单未支付30分钟自动取消
- win10下yolov3训练自己的数据集
- Words, morphology, and lexicons 词、词法和词汇