ASP Classic有哪些选项用于错误处理?是否可以在ASP Classic中尝试使用错误处理?
例如:
我使用的Mail.SendMail
功能,但在测试服务器上进行切换时它不工作,这是正常的。我想测试邮件是否可能,如果不可以,则继续和/或显示消息。
任何想法?
ASP Classic有哪些选项用于错误处理?是否可以在ASP Classic中尝试使用错误处理?
例如:
我使用的Mail.SendMail
功能,但在测试服务器上进行切换时它不工作,这是正常的。我想测试邮件是否可能,如果不可以,则继续和/或显示消息。
任何想法?
有两种方法,您可以使用JScript或VBScript进行编码,这些方法确实具有该构造,或者您可以在代码中对其进行编译。
使用JScript中你会用下列类型的构造:通过使用错误的简历在旁边点
<script language="jscript" runat="server">
try {
tryStatements}
catch(exception){
catchStatements}
finally {
finallyStatements}
</script>
在你的ASP代码,你掰过来,你就会有一个尝试和检查的Err.Number在像这样的一个点上:
<%
Dim i
' Turn on error Handling
On Error Resume Next
'Code here that you want to catch errors from
' Error Handler
If Err.Number <> 0 Then
' Error Occurred/Trap it
On Error Goto 0 ' But don't let other errors hide!
' Code to cope with the error here
End If
On Error Goto 0 ' Reset error handling.
%>
某些方案并不总是允许开发人员切换脚本语言。
我的偏好肯定适用于JavaScript(我已经在新项目中使用了它)。但是,维护较旧的项目仍然是必需的和必要的。不幸的是,这些都是用VBScript编写的。
所以即使这个解决方案没有提供真正的“try/catch”功能,结果也是一样的,这对我来说完成工作已经足够了。
一个相当不错的方法来处理这个丢失COM类:
Dim o:Set o = Nothing
On Error Resume Next
Set o = CreateObject("foo.bar")
On Error Goto 0
If o Is Nothing Then
Response.Write "Oups, foo.bar isn't installed on this server!"
Else
Response.Write "Foo bar found, yay."
End If
对于海纳谁在ASP工作以及更现代的语言,问题就会招来一笑道。根据我的经验,使用自定义错误处理程序(在IIS中设置以处理500; 100错误)是ASP错误处理的最佳选择。本文介绍该方法,甚至为您提供一些示例代码/数据库表定义。
声明上的错误继续下一步应该放在我们要验证什么上面。
On Error Resume Next
'Your code logic is here
然后用语句结尾,如:
If Err.Number <> 0 then
'Your error message goes here'
End if
关于Wolfwyrd的前面回答:“在错误继续下一步”其实轮流错误处理掉!不开。On Error Goto 0会将错误处理重新打开,因为至少我们希望机器能够抓住它,如果我们没有写入自己的话。关=将它交给你处理。
如果您使用On Error Resume Next,则需要注意其中包含多少代码:请记住,短语“If Err.Number <> 0 Then”仅指最前一个触发的错误。
如果您的“On Error Resume Next”之后的代码块有几个地方可能会合理预期它会失败,则必须在每个可能的故障之后放置“If Err.number <> 0”行,检查执行。
否则,在“出现错误继续下一步”之后,就意味着它的含义 - 您的代码可能会按照它喜欢的方式执行尽可能多的行,并且执行过程会继续愉快地进行。这就是为什么这是屁股疼痛。
1)添加On Error Resume Next
页面
2)的顶部在页面
If Err.Number <> 0 Then
Response.Write (Err.Description)
Response.End
End If
On Error GoTo 0
很高兴认识的底部添加以下代码,但bejeebus那难看。我会切换脚本语言。 – 2009-01-23 11:36:41
告诉我关于它:-)我必须维护一些旧的项目,并且ASP缺少其他脚本语言现在拥有的很多标准功能...... – 2009-01-23 12:46:27