如何捕捉错误并将错误详细信息保存在数据库中,并重定向到经典asp中的自定义错误页面?
问题描述:
如何捕获错误并将错误详细信息保存到数据库中,并重定向到经典asp中的自定义错误页面?如何捕捉错误并将错误详细信息保存在数据库中,并重定向到经典asp中的自定义错误页面?
我想,我应该包括在我的网站的所有页面中的ASP页面,如果任何错误发生就得到这个错误的细节,它保存到数据库或邮寄到邮件ID和重定向到自定义错误页。 如果您有任何想法,请帮助我。
答
经典的ASP没有try/catch。 它也默认使用VBScript,上面的答案是,我猜,C#? 这里是VBscript ASP你试图做什么:
<%
Set conn = Server.CreateObject("ADODB.Connection")
SQL_server_string = "Provider=SQLOLEDB; Data Source=myMachine; Initial Catalog=pubs; User ID=sa; Password=pw"
ConnectionString = SQL_server_string
conn.Open ConnectionString
s = "INSERT INTO"
s = s & " tablename "
s = s & "("
s = s & " fieldname1 "
s = s & ",fieldname2 "
s = s & ") "
s = s & "VALUES"
s = s & "("
s = s & "'" & stringvalue1 & "'"
s = s & ",'" & stringvalue2 & "'"
s = s & ") "
conn.execute(s)
if (err.number<>0) then
m = "error on page ___ line ____<br>"
m = m & "error number: " & err.number & "<br>"
m = m & "error description: " & err.description & "<br>"
m = m 7 "sql: " & s & "<br>"
session("msg") = m
set conn=nothing
response.redirect("error_report.asp")
end if
'got past error checking... do stuff...
%>
答
在javascript中使用try catch方法来捕获错误。在catch块内将数据发布到服务器。在服务器上有一个你熟悉的aspx页面或php页面。获取数据作为参数从这篇文章插入到aspx/php文件中,并从该文件插入到数据库中。
<script>
var txt="";
function ProcessData()
{
try
{
....
}
catch(err)
{
var message = err.message;
$ajax({
type:"POST",
url:"Errorhandler.aspx/InsertErrordetails",
data:"{error: '" + message + "'}",
clientType:"application/json; charset=utf-8",
datatype:"json",
async: false,
success: function() { alert("success"); },
error: function(){alert("error");}
});
}
}
</script>
服务器端代码如下所示。
public static void InsertErrordetails(string error)
{
SqlConnection Con = new SqlConnection(@"Server=db;Integrated Security=True;" + "Database=userdb");
string query = "INSERT INTO [LogTable]([Message])" +
"VALUES (@error)";
SqlCommand cmd = new SqlCommand(query, Con);
cmd.Parameters.AddWithValue("@Message", error);
try
{
Con.Open();
cmd.ExecuteNonQuery();
}
catch (Exception)
{
throw;
}
finally
{
Con.Close();
}
}
这个信息帮了我很多 – 2013-09-16 07:13:31