加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

捕捉并保留ASP运行错误的函数代码

发布时间:2023-04-30 12:59:23 所属栏目:Asp教程 来源:
导读:过程名:catch(str)使用方法:代码如下:on error resume next'你的代码,如数据库连接call catch("显示给用户的提示信息")功能:清除IIS的错误提示信息,自定义错误提示返回给用户,并将出错信息保存到txt文件(

过程名:catch(str)

使用方法:

代码如下:

on error resume next

'你的代码,如数据库连接

call catch("显示给用户的提示信息")

功能:清除IIS的错误提示信息,自定义错误提示返回给用户,并将出错信息保存到txt文件(当然你也可以稍做修改转向自定义页面等)

代码:

代码如下:

<%

option explicit

'例一---------------------------

'必须和on error resume next一起使用,但在网页没有正式发布之前最好将其注释掉,以免在调试时看不到出错详细信息

on error resume next

'i没有定义,会出错,使用catch清除错误并保存到记事本

i

call catch("页面无法访问")

'-------------------------------

'例二---------------------------

function conn()

'必须和on error resume next一起使用

on error resume next

'...........你的连接数据库代码

call catch("数据库打开错误")

end function

'-------------------------------

sub catch(str)

if err.number <> 0 then

dim tmp,path

'错误日志绝对路径,如"/error_log.txt"

path = "/table/error_log.txt"

tmp = tmp & "出错页面:" & geturl & vbcrlf

tmp = tmp & "错误时间:" & now() & vbcrlf

tmp = tmp & "来访IP:" & ip & vbcrlf

tmp = tmp & "提示信息:" & str & vbcrlf

tmp = tmp & "错误代号:" & err.number & vbcrlf

tmp = tmp & "错误信息:" & err.description & vbcrlf

tmp = tmp & "应用程序:" & err.source & vbcrlf & vbcrlf & vbcrlf

tmp = tmp & file_read(path)

call file_save(tmp,path,1)

err.clear()

die(str)

end if

end sub

'以下为catch所用到的函数--------------------

sub echo(str)

response.write(str)

end sub

sub die(str)

echo(str) : response.end()

end sub

function ip()

ip = request.servervariables("remote_addr")

end function

'获取当前URL

function geturl()

dim tmp

if lcase(request.servervariables("https")) = "off" then

tmp = "http://"

else

tmp = "https://"

end if

tmp = tmp & request.servervariables("server_name")

if request.servervariables("server_port") <> 80 then

tmp = tmp & ":" & request.servervariables("server_port")

end if

tmp = tmp & request.servervariables("url")

if trim(request.querystring) <> "" then

tmp = tmp & "?" & trim(request.queryString)

end if

geturl = tmp

end function

'函数:读取文件内容到字符串

function file_read(path)

dim tmp : tmp = "false"

if not file_exists(path) then file_read = tmp : exit function

dim stream : set stream = server.CreateObject("ADODB.Stream")

with stream

.type = 2 '文本类型

.mode = 3 '读写模式

.charset = "gb2312"

.open

.loadfromfile(server.MapPath(path))

tmp = .readtext()

end with

stream.close : set stream = nothing

file_read = tmp

end function

'函数:保存字符串到文件

function file_save(str,path,model)

if model<>0 and model<>1 then model=1

if model=0 and file_exists(path) then file_save=true : exit function

dim stream : set stream = server.CreateObject("ADODB.Stream")

with stream

.type = 2 '文本类型

.charset = "gb2312"

.open

.writetext str

.savetofile(server.MapPath(path)),model+1

end with

stream.close : set stream = nothing

file_save = file_exists(path)

end function

'函数:检测文件/文件夹是否存在

function file_exists(path)

dim tmp : tmp = false

dim fso : set fso = server.CreateObject("Scripting.FilesyStemObject")

if fso.fileexists(server.MapPath(path)) then tmp = true

if fso.folderexists(server.MapPath(path)) then tmp = true

set fso = nothing

file_exists = tmp

end function

%>

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章