手机
当前位置:查字典教程网 >编程开发 >ASP教程 >捕捉并保存ASP运行错误的函数代码
捕捉并保存ASP运行错误的函数代码
摘要:过程名:catch(str)使用方法:复制代码代码如下:onerrorresumenext'你的代码,如数据库连接callcatch("显示...

过程名: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

%>

【捕捉并保存ASP运行错误的函数代码】相关文章:

ASP编程常用的代码

用正则表达式写的HTML分离函数

ASP动态生成的javascript表单验证代码

ASP常用的函数

对URL地址进行编码 优化2

Asp 函数介绍

实现ASP程序执行时间统计类的代码

ASP使用FSO读取模板的代码

常见的ASP获取时间操作的代码

ASP函数大全

精品推荐
分类导航