您的位置:首页 > 编程语言 > ASP

ASP运行错误的函数代码学习

2013-05-21 09:33 267 查看
  过程名: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
  %>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐