异常处理和验证控件.ppt
《异常处理和验证控件.ppt》由会员分享,可在线阅读,更多相关《异常处理和验证控件.ppt(41页珍藏版)》请在三一办公上搜索。
1、第5章 异常处理和验证控件,郑州信息科技职业学院 张中兴,本章内容,错误处理使用验证服务控件,5.1 错误处理,一.异常处理异常:发生不同类型的错误。抛出异常:系统或程序本身向外声明一个异常发生。异常类:错误的种类,都是特定类的对象。错误页面:一个特定的错误页面。处理异常:出现错误时不希望只是出现错误页面,而是能对错误直接处理。处理错误的方法(级别):1.在类级2.在页面级3.在应用程序级,二.在类级(程序中)使用trycatch语句块处理异常try double dVal1=Convert.ToDouble(txtValue1.Text);double dVal2=Convert.ToDou
2、ble(txtValue2.Text);double result=dVal1/dVal2;labMessage.Text=txtValue1.Text+/+txtValue2.Text;labMessage.Text+=+result;catch(FormatException ex1)labMessage.Text=Please enter a valid number;catch(Exception ex2)labMessage.Text=Unable to compute a value with these values;,有时需要使用finally做最后的处理,无论是否发生异常。t
3、ry/Open a database connection/Execute SQL statementcatch(DbException ex)/Handle database exceptionfinally/Close database connection if it exists,1.异常开销 不是多有的问题都需要使用异常来对待,如接受用户数据的输入。下面的处理方法并不是很合适:try SomeBusinessObject.Login(email);/Other code dependent upon a successful logincatch(Exception ex)/Disp
4、lay message that email was not found使用下面的处理方法程序将更加健壮:bool okay=SomeBusinessObject.Login(email);if(!okay)/Display error message on page else/Other code dependent upon a successful login,2.可能的异常处理策略当有异常出现时有四种处理策略:通过捕获异常来吞掉它,并且继续正常执行而忽略异常。在catch语句块中完全处理异常。不捕获异常而忽略它(让其他类来处理它)。捕获异常并重新抛出它,以便某个其它的类来处理它。说明:
5、第一种方法根本不合适。属于典型的不负责任。第二种方法最理想,但难以做到,不是什么问题自己都能够解决。第三种方法也比较多见,有时候自己无能力处理,只好交给别人处理。第四种方法也比较多见,根据情况进行处理,并将错误上报。,try/Other code that causes an exceptioncatch(Exception ex)/Do something with exception/Rethrow exception throw;或throw new Exception(myMessage,ex);,三.页面级的异常处理ASP.NET提供了一个Page_Error事件,专门处理页面级异常
6、。看下面的事例。public partial class PageExceptionTest:protected void Page_Load(object sender,EventArgs e)BuggyMethod();private void BuggyMethod()/Deliberately throw an exception to simulate/uncaught exception throw new ApplicationException(Your buggy code caused an exception.);private void Page_Error(objec
7、t sender,EventArgs e)Exception ex=Server.GetLastError();Response.Write(An error has occurred);Response.Write(+ex.Message+);Response.Write(+ex.StackTrace+);Context.ClearError();/防止缺省错误页面显示 Page_Error中不允许使用控件,所以只能使用Response.Write输出数据。,通常不使用Page_Error事件处理器,一般使用Application_Error处理器,它属于应用程序一级,比页面级更有优势。,四
8、、应用程序级的异常处理,有两种方法:使用Application_Error处理器使用错误页面重定向1.使用Application_Error处理器Application_Error处理器比Page_Error更有优势,它能处理所有页面级的错误。需要说明的是,Application_Error处理器定义在Global.asax文件中(可通过添加全局应用程序类添加)。,下面例子把接收到的任何异常输出到Windows Event Log,可通过事件查看器浏览。void Application_Error(object sender,EventArgs e)string msg=Url+Request
9、.Path+Error:+Server.GetLastError().ToString();try/create the WebErrors event source if we need to string logName=WebErrors;if(!EventLog.SourceExists(logName)EventLog.CreateEventSource(logName,logName);/add a new error event to the log EventLog log=new EventLog();log.Source=logName;log.WriteEntry(msg
10、,EventLogEntryType.Error);catch(Exception ex)/not much we can do with this except output it to debugger Debug.WriteLine(ex.Message);,也可以把错误形成邮件发送到指定的邮件中或把信息记录到自定义文件中。见教材P180。,2.使用自定义错误页面,如果在Page_Error和Application_Error中不使用Context.ClearError方法,则错误会重定向到缺省的错误页面。错误的页面在开发环境和非开发环境下是不同的,开发环境下可以看到错误的详细信息。也可
11、以将错误页面重定向到一个自定义的页面,这需要修改配置文件。,5.2 使用验证服务器控件,验证控件用来测试用户的输入并设置输入是否通过测试的属性。验证控件需要引用页面上其他的输入控件。在用户输入时,ASP.NET页框架将用户输入传递到一个或多个适当的验证控件,由验证控件对输入的信息进行验证。ASP.NET提供了五种基本的验证类型控件和一个验证总结控件(ValidationSummary),它们分别由不同的验证控件来实现。,验证控件,下面展示了RequiredFieldValidator控件的使用其中两个重要属性ControlToValidate用来建立关联,Text显示错误提示。,一、表单验证过
12、程,表单数据的验证包括客户端验证和服务器端验证客户端验证:浏览器通过本地JavaScript脚本进行验证,不需要与服务器交互,减少往返时间。效率高。服务器端验证:有些验证必须在服务器端进行,因为需要与服务器上的数据进行比较。两种验证不是绝对分开的。有时因为客户端不支持,客户端验证可能行不通,另外也存在一定的风险(存在脚本漏洞)。所以服务器端验证会更加安全。,1.客户端验证过程客户端验证就是验证的程序是在客户端执行,即控件转换成相关的HTML元素和一些JavaScript程序,例如RequiredFieldValidator控件转换后会有许多JavaScript代码。见实例:Validation
13、Sample.aspx UsingRequired.aspx可通过在浏览器查看源代码,观察生成的JavaScript代码。,2.服务器端验证过程服务器端的验证需要在服务器端编写相关验证程序。有时除了控件本身的验证以外,还需要编写一定的程序进行数据的检查,例如和数据库内容的匹配比较,检查用户名是否已注册等。见第5章实例:DisableClientValidation.aspx注意:Page.IsValid是页面的属性,当为tue时,说明客户端控件合法,即验证控件验证通过。,3.常用验证属性,ControlToValidate:控件IDDisplay:错误消息的显示行为。可能的值是:None(不显
14、示验证消息),Static(占用固定的空间并显示错误消息),Dynamic(只有当有错误消息时分配空间并显示消息).缺省值是Static.EnableClientScript:指示客户端验证是否可用.缺省值是true.Enabled:验证控件是否可用ErrorMessage:验证失效,将要显示在ValidationSummary控件中的错误消息文本.ForeColor:验证实效,将要显示错误文本的颜色。缺省为Color.Red.IsValid:验证失效是否传递它的验证检查,一般通过程序检验时设置。SetFocusOnError:验证失败,焦点是否移动到相关控件。缺省为false.Text:验证
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 异常 处理 验证 控件
链接地址:https://www.31ppt.com/p-6572379.html