设为首页 加入收藏 网站搜索 繁體中文 中国建站网 — 站长资源分享平台

ASP 3.0高级编程(十五)

来源:网络收集 作者:佚名 时间:2007-04-25 16:24:04
4.3.4 Server对象的错误处理
       ASP没有错误处理机制一直受到批评。
       在VBScript中,有一个On Error Resume Next语句,它使脚本解释器忽略运行期错误并继续脚本代码的执行。接着该脚本可以检查Err.Number属性的值,判别是否出现了错误。如果出现错误,返回一个非零值。在ASP 3.0中,也可以使用On Error Goto 0“转回到”缺省的错误处理。在ASP 2.0中实际也进行这种处理,但是没有相应文档说明。
       在Jscript中,有一个新的错误处理功能:C语言风格的try和catch语句。然而所有的这些错误处理技术都不是由ASP或IIS实现的,而是由ASP使用的脚本引擎实现的。
       第7章专门讨论脚本和脚本引擎涉及到的调试和错误处理技术。
       同时,ASP和IIS的开发小组已经增加了一个新的功能,用于在ASP网页中进行错误处理。这分为两个部分:IIS错误页面的配置及使用ASP的一个新的方法和对象。
1.  Server对象的GetLastError方法
在ASP 3.0中,Server对象有一个名为GetLastError的新方法。与VBScript的Err对象不同,不能为查看是否出现了错误而随时调用该方法,只能在一个ASP定制的错误网页中使用。如果像对Err对象进行操作那样,通过关闭缺省的错误处理(用On Error Resume Next语句)来使用,则GetLastError方法不能访问错误的详细数据。
GetLastError方法要做的事情是提供更多的有关错误源和错误原因的信息。GetLastError方法创建并返回一个对象的引用,该对象是一个名为ASPError的新对象。这个对象具有一系列的属性,这些属性返回有关在GetLastError方法调用之前出现的最新错误的信息。
2.  ASPError对象的属性
ASPError对象提供了九个属性说明所出现的错误的性质和错误源,并返回引发错误的实际代码,其属性及说明如表4-4所示:
表4-4  ASPError对象的属性及说明
属 性
说 明

ASPCode
整型。由ASP/IIS产生的错误号,例如0x800A009

ASPDescription
字符串型。如果这个错误是与ASP相关的错误,这个属性是错误的详细说明

Category
字符串型。错误源,即ASP内部脚本语言、或一个对象

Column
整型。产生错误的文件中的字符位置

Description
字符串型。错误的简短说明

File
字符串型。错误出现时正在处理的文件的名称

Line
整型。产生错误的文件中的行号

Number
整型。一个标准的COM错误代码

Source
字符串型。引发错误的行的实际代码

3.  配置“单个网页”错误处理
在IIS中“不可思议”地出现一个错误(例如404 Not Found)时,页面看起来像是从服务器返回给客户端的一个错误信息页面,但实际上并不是这样。它们是普通的HTML网页,在对一个错误进行响应时被下载并且发送给客户端。这些网页通常称为定制的错误网页(custom error page)。
然而,错误网页作为IIS的缺省安装部分,可根据要求定制。事实上,也可以在IIS的早期版本中建立定制的错误网页。
在IIS 4.0中,可以为每种不同类型的HTTP协议或服务器错误指定一个定制的错误网页,为服务器上任意的Web网站中的每个目录建立一个定制的错误信息网页。
(1)    IIS缺省的错误网页
由IIS提供的缺省错误页面放在Web服务器的WinNT\Help目录中。在Windows 2000中的IIS 5.0的环境下,该页面放在WinNT\Help\iishelp\common目录下,如图4-17所示:

图4-17  缺省的错误页面位置
可在浏览器中打开这些文件查看结果,或者在文本编辑器中查看HTML源程序和脚本代码。当一个404错误出现时,使用的页面是404b.htm,这个文件包含一个客户端脚本代码部分,它获得当前文档的URL(从document对象的url属性中检索)并在该页面中显示:
<tr>
<td width="400" colspan="2"> <font style="COLOR:000000; FONT: 9pt/11pt 宋体">您正在搜索的网页可能已经删除、更名或暂时不可用。</font></td>
  </tr>

  <tr>
    <td width="400" colspan="2"> <font style="COLOR:000000; FONT: 9pt/11pt 宋体">

       <hr color="#C0C0C0" noshade>

<p>请尝试下列操作:</p>

       <ul>
<li>如果您在“地址”栏中键入了网页地址,请检查其拼写是否正确。<br>
      </li>

<li>打开 <script>
         <!--
         if (!((window.navigator.userAgent.indexOf("MSIE") > 0) && (window.navigator.appVersion.charAt(0) == "2")))
         {
             Homepage();
         }
         //-->
          </script> 主页,寻找指向所需信息的链接。</li>

<script>
function Homepage(){
<!--
       DocURL = document.URL;
       protocolIndex=DocURL.indexOf("://",4);

[1] [2] [3]  下一页

Tags:

  • 好的评价 如果您觉得好,就请您
      0%(0)
  • 差的评价 如果您觉得差,就请您
      0%(0)
  • 相关文章
    广告赞助

    文章随便看看 设计素材 建站学院 网页模板 视频教程

    网友评论

    共有 0 位网友发表了评论,得分 0 分,平均 0 分    查看完整评论

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 1分

    内 容:

             通知管理员 验证码: