1.我在NET中写一些组件,作用是把数据插入数据库里面或是修改数据。
public static bool 插入(string que)
{ //根据传进来的SQL语句执行插入/删除/更新等操作
SqlConnection con = odb.con();
con.Open();
SqlCommand cmd = new SqlCommand(que, con);
int count = Convert.ToInt32(cmd.ExecuteNonQuery());
con.Close();
if (count > 0)
return true;
else
return false;
}
然后在WEB页面上根据返回的值来判断插入数据是否成功。现在问题是如果插入数据出现异常时,我要如何记录这异常并记录下来。当然我也可以在执行时放一个try{}catch{}来捕捉这个异常。但返回时的数据类型怎么解决。
因为这个问题困饶我很久,因为不知道错在哪里,有时候不得不在WEB页面上把建立连接,执行数据指令与捕获异常全部写一下然后用一个response.write(exp);打出来才知道哪里出错。2.最近我看了一些人写的类库,他把经常要用到的一些方法封装起来,类似上面那样,用的是静态方法。我不知道这样做对WEB站点的性能影响会不会很大,因为必尽是静态的,要存放在内存的。3.题外话:我看到赴日程序员,月薪高达上万。我不明白。为什么中国程序员在中国就不能赚到这些钱。而同样的人到了外国(说实话我反日的)他们的薪水就高涨起来。这是为什么呢?
public static bool 插入(string que)
{ //根据传进来的SQL语句执行插入/删除/更新等操作
SqlConnection con = odb.con();
con.Open();
SqlCommand cmd = new SqlCommand(que, con);
int count = Convert.ToInt32(cmd.ExecuteNonQuery());
con.Close();
if (count > 0)
return true;
else
return false;
}
然后在WEB页面上根据返回的值来判断插入数据是否成功。现在问题是如果插入数据出现异常时,我要如何记录这异常并记录下来。当然我也可以在执行时放一个try{}catch{}来捕捉这个异常。但返回时的数据类型怎么解决。
因为这个问题困饶我很久,因为不知道错在哪里,有时候不得不在WEB页面上把建立连接,执行数据指令与捕获异常全部写一下然后用一个response.write(exp);打出来才知道哪里出错。2.最近我看了一些人写的类库,他把经常要用到的一些方法封装起来,类似上面那样,用的是静态方法。我不知道这样做对WEB站点的性能影响会不会很大,因为必尽是静态的,要存放在内存的。3.题外话:我看到赴日程序员,月薪高达上万。我不明白。为什么中国程序员在中国就不能赚到这些钱。而同样的人到了外国(说实话我反日的)他们的薪水就高涨起来。这是为什么呢?
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>我不知道如何利用他。不知道他是否能解决我说的这问题。
页面:Page_Error
应用程序:Application_Error(in global.asax)
3. 不知道,国内钱少,但出去受歧视,还是当地头蛇好。
http://topic.csdn.net/t/20010513/20/119861.html
{
this.Error += new System.EventHandler(this.PageBase_Error);
}protected void PageBase_Error(object sender, System.EventArgs e)
{
string errMsg;
//得到系统上一个异常
Exception currentError = Server.GetLastError(); errMsg += "<pre class=msg><h1>页面错误</h1><hr size=1>此页面发现一个意外错,对此我们非常抱歉。"+
"此错误消息已信息了系统管理员,请及时联系我们,我们会及时解决此问题! \r" +
"错误发生位置: "+Request.Url.ToString()+"\r"+"</pre>";
//"错误消息: "+ currentError.Message.ToString() + "\r"+
//"<b>Stack Trace:</b>"+
//currentError.ToString()+"</pre>";
//如果发生致命应用程序错误
if (!(currentError is ApplicationException))
{
//向系统事件日志中写入错误日志
LogEvent(currentError.ToString());
}
//在页面中显示错误
Response.Write(errMsg);
//清除异常
Server.ClearError();
}
protected void LogEvent(string message)
{
string br=Convert.ToString(Convert.ToChar(13));
//HttpRequest.PhysicalApplicationPath
string Err_FilePath=Request.PhysicalApplicationPath+"err_logfiles\\"+DateTime.Now.ToShortDateString()+".txt";
string header="";
header+=br+br+br;
header+="=====================================================================================================";
header+=br;
header+="==========================================="+DateTime.Now.ToLongTimeString()+"==================================================";
header+=br;
header+="=====================================================================================================";
header+=br;
header+="错误发生位置:"+Request.Url.ToString();
header+=br;
message=header+message; WriteAddTo(message,Err_FilePath);
}
{
base.OnInit(e);
this.Load += new System.EventHandler(this.PageBase_Load);
this.Error += new System.EventHandler(this.PageBase_Error);
} protected void LogEvent(string message, EventLogEntryType entryType)
{
//EventLog提供与Windows事件日志的交互
//如果事件源ApplicationName没有在计算机中注册,则创建事件源
if (!EventLog.SourceExists("ApplicationName"))
{
EventLog.CreateEventSource("ApplicationName", "Application");
}
//将错误日志信息写入Windows事件日志中
------------------------------------------------------------------------
----------这里需要权限,所以我都是用的上一种,你可以记录到数据库里或其他地方。
------------------------------------------------------------------------
EventLog.WriteEntry("ApplicationName", message, entryType);
}
protected void PageBase_Error(object sender, System.EventArgs e)
{
string errMsg;
//得到系统上一个异常
Exception currentError = Server.GetLastError(); errMsg = "<link rel=\"stylesheet\" href=\"/default.css\">";
errMsg += "<h1>页面错误</h1><hr/>此页面发现一个意外错,对此我们非常抱歉。"+
"此错误消息已信息了系统管理员,请及时联系我们,我们会及时解决此问题! <br/>" +
"错误发生位置: "+Request.Url.ToString()+"<br/>"+
"错误消息: <font class=\"ErrorMessage\">"+ currentError.Message.ToString() + "</font><hr/>"+
"<b>Stack Trace:</b><br/>"+
currentError.ToString();
//如果发生致命应用程序错误
if ( !(currentError is ApplicationException) )
{
//向Windows事件日志中写入错误日志
LogEvent( currentError.ToString(), EventLogEntryType.Error );
}
//在页面中显示错误
Response.Write( errMsg );
//清除异常
Server.ClearError();
}