<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[静怡家园]]></title> 
<link>http://www.zhanghaijun.com/index.php</link> 
<description><![CDATA[书山有路勤为径，学海无涯苦作舟！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[静怡家园]]></copyright>
<item>
<link>http://www.zhanghaijun.com/post//</link>
<title><![CDATA[Asp组件初级入门与精通系列之六]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[Web开发]]></category>
<pubDate>Fri, 29 Jun 2007 18:45:11 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post//</guid> 
<description>
<![CDATA[ 
	错误处理 　　<br/><br/>　　如果页面出错,而没有对错误的处理，那么页面会显示一个用户可能看不懂的错误。<br/><br/>　　在asp脚本中可以使用<br/><br/>　　On Error Resume Next<br/><br/>　　……<br/><br/>　　if Err.Number&lt;&gt;0 then<br/><br/>　　Response.Write Err.Description<br/><br/>　　End if<br/><br/>　　但是如果组件中出错呢？这种方法可以捕获错误，但是具体的错误如何知道呢？<br/><br/>　　我们可以在组件中加入错误处理，来返回错误，这样可以容易的看到更加详细的出错信息，有助于我们排除错误。<br/><br/>　　<br/><br/>　　使用Err.Raise, Raise 被用来生成运行时错误<br/><br/>　　打开vb6,新建Activex Dll工程。工程名修改为fCom,类名修改为fC6<br/><br/>　　Option Explicit<br/><br/>　　<br/><br/>　　Public Sub showerror1()<br/><br/>　　On Error GoTo ErrorHandle<br/><br/>　　Dim i As Double<br/><br/>　　i = 1 / 0<br/><br/>　　ErrorHandle:<br/><br/>　　Err.Raise Err.Number, Err.Source, Err.Description<br/><br/>　　End Sub<br/><br/>　　‘生成自定义的错误<br/><br/>　　Public Sub showerror2()<br/><br/>　　Err.Raise 600, &quot;自己定义的错误600&quot;, &quot;这是描述自己程序的错误&quot;<br/><br/>　　End Sub<br/><br/>　　<br/><br/>　　Ok,一个组件就写好了，点击菜单-&gt;文件-&gt;生成fCom.dll文件<br/><br/>　　确定，在目录下就会有fCom.dll文件<br/><br/>　　<br/><br/>　　测试<br/><br/>　　打开visual interdev6.0,生成一个asp文件<br/><br/>　　<br/><br/>　　&lt;%@ Language=VBScript %&gt;<br/><br/>　　&lt;HTML&gt;<br/><br/>　　&lt;BODY&gt;<br/><br/>　　&lt;%<br/><br/>　　‘下面这一句很重要<br/><br/>　　on error resume next<br/><br/>　　set obj=server.CreateObject(&quot;fCom.fc6&quot;)<br/><br/>　　obj.showerror1()<br/><br/>　　‘如果没有错误处理，就会产生一个出错的界面，很不专业<br/><br/>　　‘从 0–512 的范围保留为系统错误；从 513–65535 的范围可以用做用户定义的错误。<br/><br/>　　‘如果是保留错误，那么组件内错误号和页面处理的错误号是相一致的<br/><br/>　　if err.number &lt;&gt;0 then<br/><br/>　　Response.Write &quot;错误信息&quot; &amp; err.number &amp; err.Description <br/><br/>　　end if<br/><br/>　　Response.Write &quot;&lt;br&gt;&quot;<br/><br/>　　<br/><br/>　　‘如果是用户定义的错误，那么在页面中可以分别进行处理<br/><br/>　　obj.showerror2()<br/><br/>　　if err.number&lt;&gt;0 then<br/><br/>　　if err.number =600 then<br/><br/>　　Response.Write err.number &amp; err.Source &amp; err.Description <br/><br/>　　end if<br/><br/>　　end if<br/><br/>　　%&gt;<br/><br/>　　&lt;/BODY&gt;<br/><br/>　　&lt;/HTML&gt;　　<br/><br/>　　配置好虚拟目录，在ie中执行此asp文件，得到结果如下:　　<br/><br/>　　错误信息11除数为零<br/>600自己定义的错误600这是描述自己程序的错误
]]>
</description>
</item><item>
<link>http://www.zhanghaijun.com/post//#blogcomment</link>
<title><![CDATA[[评论] Asp组件初级入门与精通系列之六]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>