会员登陆
登录加载中...
超级搜索
栏  目  
类  别  
关键词  
 站内搜索   网络搜索
  
 当前位置:文章首页>>网页编程>>ASP实例>>捕捉并保存ASP运行错误的函数代码
推荐给你的朋友阅读:

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

来源:ASP之家 发表日期: 2013-06-08 11:56:30

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

0
0
[作者:匿名 关键词:运行错误,函数 录入:raincity 责编:raincity 阅读次数:3385]
上一记录:没有上一条记录
下一记录:ASP返回某年总共有多少天的代码

相关文章 相关新闻 相关软件 相关教程 公共评论 发表评论

  • ·暂无相关内容
  • ·暂无相关内容
    评论载入中...
    您的称呼  验 证 码   
    您的评论 [ 最多字数:  已用字数:剩余字数:]

     
COPYRIGHT 2003-2010 创意飞腾科技有限公司(The Feitec LTD.) ALL RIGHTS RESERVED .
官方咨询官方咨询4376161 官方咨询526743959 技术支持:FeitecCMS5366464
页面加载时间:203.13ms Powered By:FeitecCMS V4.0(Build1101)
[蜀ICP备05000881]