ASP.NET异常处理

先看两篇转载文章:

---------------------转载开始-----------------------------------------------
转载自:http://hi.baidu.com/479775812/blog/item/76e4fdadc2ba58054b36d616.html
ASP.NET异常处理准则
2010-03-31 03:49
在开发应用程序的时候,异常处理是非常的重要的,我找到一些异常处理准则,将它共享出来,如有不同意见,欢迎提出来一起探讨。
1、决不“catch”一个Exception,却什么也不处理。如果您隐藏了异常,你永远不会知道是否发生过异常。
2、如果产生Exception,给用户提供一个友好的信息,但记录与有关错误的所有可能的细节,包括它的发生时间,方法和类的名字等实际的错误信息。
3、始终捕获特定的异常,而不是一般的异常和系统异常。
4、你可以有一个应用程序级(线程级)的错误处理程序,您可以用它处理所有一般异常。在一个'意外一般错误''中,这个错误处理程序应该捕获该异常并记录他,除此之外,在应用程序关闭之前应该做出友好的信息提示或者允许用户选择忽略异常继续。
5、不要在所有的方法中写的try - catch。只在有可能有某个特定的异常发生的方法中使用它。例如,如果你是一个文件读写操作,只需处理FileIOException。
6、不写非常大的try - catch块。如果需要,为您执行每个任务编写单独的try - catch程序,在try - catch中只有一段特定的代码。这将帮助你找到哪一段代码产生的异常,你可以给特定的错误信息给用户。
7、如果在你的应用需要,你可以写自己的自定义异常类。自定义异常不要继承SystemException基类。相反,继承ApplicationException。
8、当发生异常时,为了确保清理占据的资源,使用try / finally块。在finally子句中关闭的资源。使用try / finally块,即使发生异常,也能确保资源disposed。
9、错误消息应能帮助用户解决问题。不要给出例如"应用程序发生异常", "有一个错误"等信息,相反要给出具体的信息“无法更新数据库。请确保登录ID和密码是正确的。”
10、当显示错误信息时,除了告诉什么是错误,该消息还应该告诉用户,不是“无法更新数据库。”,而是建议用户应怎样做:“无法更新数据库。请确保登录ID和密码是正确的。”
11、显示简短和友好的信息给用户。但要尽一切可能的记录实际的错误日志信息。这将有助于诊断问题。
12、在Global.asax中定义一个全局错误处理程序来捕获任何未在代码中处理异常。你应该在事件日志中记录所有的异常追踪和随后进行分析。

转载自:http://topic.csdn.net/u/20091110/10/e3fabb79-4f9b-4f12-bd97-d2f4971debdc.html
wuyq11 回复于:2009-11-10 12:45:18 #22楼
异常可以分为系统异常和业务异常,业务异常必须被转化为业务执行的结果 
DataAccess层不得向上层隐藏任何异常 
要明确区分业务执行的结果和系统异常。比如验证用户的合法性,如果对应的用户ID不存在,不应该抛出异常, 
而是返回(或通过out参数)一个表示验证结果的枚举值,这属于业务执行的结果。但是,如果在从数据库中提取用户信息时,数据库连接突然断开,则应该抛出系统异常 
BL层应根据业务的需要捕获某些系统异常,并将其转化为业务执行的结果 
UI层除了从调用BL层的API获取的返回值来查看业务的执行结果外,还需要截获所有的系统异常,并将其解释为友好的错误信息呈现给用户 
一般使用log4net实现日志记录和自定义异常处理
---------------------转载结束-----------------------------------------------

我的错误处理办法
虽然try{}catch{}早就会了,可是对于异常捕获以及如何把这个错误合理的呈现给用户还是很困惑。在网上搜索了一番,发现上面两篇文章讲得很有道理。使我对错误处理有了更进一步的认识。
我认为在UI层捕获错误,并准确的把错误友好的提示给用户,并且记录错误的信息。在Global.asax中定义一个全局错误处理程序来捕获任何未在代码中处理异常。

你可能感兴趣的:(asp.net)