C#异常
来源:互联网 发布:买火车票12306软件 编辑:程序博客网 时间:2024/06/05 04:44
使用原则:
- 正常业务逻辑,不要使用异常来处理
- 不要总是尝试去捕获或引发异常,而应该允许异常向调用堆栈往上传播
- 只有在出现资源问题,严重错误时才引发异常
- 如果向用户抛出异常,最好包装一下,引发一个含有友好信息的新异常
- 抛出新异常,需要将原有异常附加进来,便于查错
在try finally中返回数据
- 若在try中返回值类型数据,则在finally中对数据的操作无效
- 若在try中返回引用类型数据,则在finally中对数据操作有效
- 建议在try finally之外返回数据,这样在finally中修改值类型,引用类型数据都会生效
异常嵌套
- 不恰当的异常嵌套,会导致打印出的堆栈不完整
- 不要在底层捕获不会处理的异常
- 在最上层捕获异常
// Wrongtry{ Method1();}catch(Exception err){ // 这里没有处理错误,而直接继续转发这个错误,会导致这之前堆栈信息丢失 throw err;}
// correcttry{ Method1();}cache{ throw;}
捕获未处理的异常
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);static void CurrentDomain_UnhandleException(object sender, UnhandledExceptionEventArgs e){}
使用自定义异常
- 方便调试
- 包装若干异常
- 便于调用者编码,根据业务划分异常
- 引入新异常类
阅读全文
0 0
- C#异常
- c# 异常
- C#异常
- C# 异常
- C#异常
- C#异常
- C# -- 异常和异常处理
- 关于C#异常处理!
- C#的异常处理
- C# 异常处理
- C# 自定义异常类
- c# 异常处理
- C#中自定义异常
- java与C#异常
- ----------------------C#异常处理 -------------------------------
- C#异常处理
- C#异常处理
- c# 日志异常类
- SpringAOP知识梳理
- Mina框架快速入门
- POJ-3253--Fence Repair(简单哈夫曼的应用)
- SQL 之 round() 函数
- ViewPager 动态删除Fragment
- C#异常
- js弹出框、对话框、提示框、弹窗总结
- Cocos2d之使用图集资源及TexturePacker的简单使用
- 搭建网站,和把大象装冰箱一样简单?
- 利用highcharts实现实时动态折线图
- 关于1~n排序问题
- androidStudio上传项目到github
- Java反射机制在Spring IOC中的应用
- Linux学习总结 unit03 文件的创建,查看与编辑