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.题外话:我看到赴日程序员,月薪高达上万。我不明白。为什么中国程序员在中国就不能赚到这些钱。而同样的人到了外国(说实话我反日的)他们的薪水就高涨起来。这是为什么呢?

解决方案 »

  1.   

    关于第一个问题在补充说明一下,其实就是捕获异常,如何捕获这异常,并让他显示出来。在web.config 里面有个节是
     <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
                <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
            </customErrors>我不知道如何利用他。不知道他是否能解决我说的这问题。
      

  2.   

    我知道抛出异常 问题是WEB在调用时是用if(方法())通过这个值来判断。所以。
      

  3.   

    捕获异常的地方很多:
    页面:Page_Error
    应用程序:Application_Error(in global.asax)
      

  4.   

    2. 缓存也占内存,不也用它来提高web性能,快就行了。硬件不是问题,内存便宜。空间换时间嘛。
    3. 不知道,国内钱少,但出去受歧视,还是当地头蛇好。
      

  5.   

    3. 你可以换算一下日元,然后了解一下在日本买一斤水果多少价钱。月薪一万人民币还是相当艰苦的。参考:http://edu.sina.com.cn/m/2005-05-23/1452115431.html
    http://topic.csdn.net/t/20010513/20/119861.html
      

  6.   

    protected override void OnInit(EventArgs e)
    {
         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);
    }
      

  7.   

    protected override void OnInit(EventArgs e)
    {
    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();
    }