on error goto (Vbscript)和try catch
时间:2008-08-04 13:22:00
在安装了IIS以后,缺省的服务器端脚本语言被设置成VBScript。许多Web 开发团队在他们的开发环境中保持了这些缺省设置,这是不幸的,因为VBScript对于处理运行时错误的支持非常的差。在VBScript中,开发者可以使用的唯一一个错误处理结构是On Error Resume Next (打开错误处理功能) 和 On Error GoTo 0 (关闭错误处理功能)
为了在你的ASP 页面里有效的使用这个错误处理结构,你可能需要用这些结构包括可能抛出异常的代码,就象下面这样:
<%
Dim myVar
On Error Resume Next
'下面一行代码会在MSXML 4.0没有被安装或者已经损坏的情况下产生错误
Set myVar = Server.CreateObject("MSXML2.DOMDocument.4.0")
If Err.Number <> 0 Then
' 在这里处理错误
' 结束错误处理,避免以后发生的错误无法被发现
On Error GoTo 0
Else
' myVar 现在指向 MSXML 4.0 DOMDocument的一个实例
' 结束错误处理,避免以后发生的错误无法被发现
On Error GoTo 0
End If
%>
就象你看到的一样,如果你要在每一行现有的可能发生错误的代码上使用上面的规则,你的程序马上就会充满 "On Error" 和 "If Err.Number <> 0 Then . . ." 这样的结构。
而另一方面JScript对于健壮的错误处理机制“结构化异常处理(SEH)”有内建的支持。使用SEH能够让你的软件开发团队顺利的转移到.NET 环境上来,因为SEH是JScript.NET, VB.NET, 和 C#缺省的错误处理机制。(注意:.NET不支持VBScript。)下面的例子代码执行与VBScript代码相同的操作,但是使用JScript语言并用SEH来处理异常
<%@ LANGUAGE="JScript" %>
<%
var myVar;
try {
myVar = Server.CreateObject("MSXML2.DOMDocument.4.0");
// 如果上面发生了错误,那么catch
// 代码块就会立刻被执行
// 并在myVar上进行必要的操作。
}
catch (e) {
// 在这里处理异常,异常本身可以用
// 'e' 变量进行引用。
}
finally {
// 在这里进行所有收尾工作
// 这段代码不管错误有没有发生
// (也就是“catch”块有没有运行)
// 都会执行。
}
%>
通过在服务器端使用JScript,你就得到了SEH带来的好处,以及对复杂ASP对象,比方Server,Request和Response对象的完全使用。要把这种脚本语言设置成你的ASP页面的缺省语言,你只需要简单的在你的ASP页面上添加@LANGUAGE指令,就象上面的例子那样。
标签:IIS,On,Error,错误,asp
0
投稿
猜你喜欢
SQL触发器在保持数据库完整性中的实际应用
2009-10-23 14:34:00
多个应用共存的Django配置方法
2021-06-28 03:25:37
Python 一键获取百度网盘提取码的方法
2023-11-30 06:13:49
Python Pygame实战之赛车游戏的实现
2022-09-17 12:12:14
Python Flask搭建yolov3目标检测系统详解流程
2023-07-07 12:40:05
git如何还原到某次commit并强制推送远程
2022-07-25 16:45:40
python 时间处理之月份加减问题
2023-11-08 01:05:42
mysql5.7.19 winx64解压缩版安装配置教程
2024-01-19 08:49:09
MySQL窗口函数的具体使用
2024-01-20 07:55:27
python如何利用matplotlib绘制并列双柱状图并标注数值
2022-08-06 22:00:33
Python 多线程处理任务实例
2021-06-25 04:50:05
如何自动备份Oracle数据库
2008-06-13 16:54:00
vue 使用饿了么UI仿写teambition的筛选功能
2024-04-27 16:05:09
Python numpy.transpose使用详解
2021-10-17 16:51:10
在Python的框架中为MySQL实现restful接口的教程
2024-01-13 08:09:54
MySQL学习之数据库操作DML详解小白篇
2024-01-14 11:59:48
MySQL 请选择合适的列
2024-01-23 05:33:31
Sun拟10亿美元收购MySQL
2008-01-17 11:56:00
Python编程中的反模式实例分析
2021-02-01 09:54:26
pytorch中图像的数据格式实例
2021-02-16 06:22:19