浅析ASP.Net之C#中的异常处理_.Net教程
推荐:ASP.Net网络数据库:连接到数据库1.使用数据库MyFirstAccessDB 本实例使用的数据库名称为MyFirstAccessDB,版本为Microsoft Access 2003中文版。该数据库已经在1.4.2节中创建。 2.创建新ASP.NET应用程序 在Visual Studio .NET 2003集成开发环境中创建新的ASP.NET Web应用程序,命名为Examp
基础知识
程序开发中,数据流按照一定的规律进行传输,如果用户和程序之间的交互完全按照预定的效果运行,程序不会出现问题。可以假设所处理的数据都符合要求,通过界面作格式判定,所有资源都正确,但是为了系统的安全,需要处理存在的隐患,不能对数据安全抱有理想化的想法。
在ASP.NET中,错误处理分为两个层面:页面输入信息验证、CLR提供的结构化错误处理机制。
在页面输入信息判断中,可以采用JavaScript、VBScript等脚本进行判断,也可以使用.NET 环境下带有的Validation和正则表达式的方式将信息在提交执行处理前,进行格式判断。格式判断包括:网络地址、电子信箱、输入字符串长短和输入信息的数据类型的判断等。
结构化异常处理是CLR的基础部分,具有以下特点:可以跨语言,异常可以在一种语言中引发,在另外一种语言中捕捉处理;分层处理,一个异常可以包括另外一个异常,这意味着系统可以捕获底层对象(如数据层和业务层)的异常,引发自己的异常,包含有底层对象的异常。这样可以将异常进行细致分类,使得异常更容易处理。
结构化异常处理,一般要使用3部分代码。
(1)Try:是程序中可能出现错误的操作部分。
(2)Catch:是用来处理各种错误的部分(可以有多个)。必须正确排列捕获异常的Catch子句,范围小的Exception放在前面的Catch。即如果Exception之间存在继承关系,就应把子类的Exception放在前面的Catch子句中。
(3)Finally 块的代码用来清理资源或执行要在Try块末尾执行的其他操作(可以省略)。无论是否产生异常,Finally块都会执行。
结构化异常处理
异常是在程序设计中无法避免的错误,设计的程序必须能够处理所有可能出现的错误。所以要全面考虑异常处理,将一切可能出现异常的代码都进行try的捕捉,然后建立自己的异常处理机制,按照不同的异常情况进行分类处理。
异常产生的时候,需要知道是什么原因造成的错误以及错误的相关信息。根据实际情况抛出具体类型的异常,然后建立捕捉机制,捕捉到异常时做出具体的处理。在编写代码过程中,可以使用系统已定义的相关异常类以及自定义的异常类来实例化并抛出需要的异常。如一个不可能实现的接口,可以抛出System.NotSupportedExceptiion的异常来告诉接口的调用者。
在处理异常的时候,应该将可处理的具体异常分别在catch 块中作出相应处理,否则程序将终止运行。针对每一种异常,以不同方式处理,避免对所有异常做出一样的处理。并且在异常产生时,给用户一个友好的提示(最终用户对系统异常的具体内容是不明白的,这就需要给出相关的信息提示和解决方案,或告诉联系管理员等),并在可能的情况下给用户提供选择(确定和取消),让用户来决定系统的运行方向。同时,程序中要将异常做日志记录。不是所有异常都是必须记录的,例如一些可捕捉并且已经安排程序进行处理的异常就不需要记录它。
分享:JSP和ASP.NET存储过程的对比这篇文章主要介绍了Oracle数据库到SQL Server数据库主键的迁移过程,具体内容请参考下文。 由于项目需要要将以前Oracle的数据库转化为SQL Server,今天利用SQL Server的DTD进行数据库的迁移,但导入以后发现只导入了表结构和数据,而表的一些主键约束都没导过
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP发送Email实例(可带附件)
- js实现广告漂浮效果的小例子
- asp.net Repeater 数据绑定的具体实现
- Asp.Net 无刷新文件上传并显示进度条的实现方法及思路
- Asp.net获取客户端IP常见代码存在的伪造IP问题探讨
- VS2010 水晶报表的使用方法
- ASP.NET中操作SQL数据库(连接字符串的配置及获取)
- asp.net页面传值测试实例代码
- DataGridView - DataGridViewCheckBoxCell的使用介绍
- asp.net中javascript的引用(直接引入和间接引入)
- 三层+存储过程实现分页示例代码
- 相关链接:
- 教程说明:
.Net教程-浅析ASP.Net之C#中的异常处理。