返回首页
当前位置: 主页 > 网络编程 > .Net实例教程 >

C#异常处理throw Exception(全局、局部)

时间:2017-11-06 22:46来源:知行网www.zhixing123.cn 编辑:麦田守望者

设计再好的程序,在执行过种中也难免不会发生异常,异常处理不好就会影响用户使用,从而影响用户体验,最终会被用户抛弃,所以处理好异常是十分重要和必要的。

  C#异常处理通常有两种方式,一种是在一个方法捕捉处理异常,另一种是全局处理异常,即一个软件、网站仅在一个公共方法中捕捉异常,并且把相关异常信息保存到一个出错日志文件中,以便修正异常。

 

  一、C# throw exception 局部异常处理

  在一个方法,估计程序可能会出错,可以用 try{}catch{} 做局部异常处理,可抛出异常,也可以弹出相关的提示,代码如下:

  /// <summary>
  /// C# throw exception 读取文件实例
  /// </summary>
  /// <param name="filePath">路径</param>

  private void ReadFileException(string filePath)
  {
    try
    {
      StreamReader sr = new StreamReader(Server.MapPath(filePath));
      string line = null;
      while (line != null)
      {
        line = sr.ReadLine();
        if (line != null)
          Response.Write("<br />" + line);
      }
    }
    catch (Exception ex)
    {
      //方法一
      throw new Exception(ex.Message);

      //方法二
      throw new ArgumentNullException(ex.Message);

      //方法三
      throw new Exception("读取文件错误!");
    }
  }

  调用方法:ReadFileException(@"G:\xq\test\error.txt";);

 

 

  二、C#全局异常处理

  网站与软件(应用程序),全局异常处理不同。网站只需要在 Global 文件捕捉异常即可,软件则在程序入口 main() 方法中捕捉,下面以网站全局捕捉异常为例,软件的实例将在下一篇文件中介绍。

  /// <summary>
  /// C#全局异常处理网站实例
  /// </summary>

  protected void Application_Error(object sender, EventArgs e)
  {
    Exception ex = Server.GetLastError().GetBaseException();
    SaveErrLog.AddLog(ex);//用xml保存错误日志,要自己写程序

    this.Server.ClearError();
    this.Response.Redirect("404网页");
  }

 

 

  三、C# 特殊异常处理

  某些时候发生异常并不需要记录错误信息或弹出提示,只需要纠正错误即可。如翻页时,当用户输入的页码超过范围或不是数字时,只需要把它纠正为最后一页或第一页,代码如下:

  /// <summary>
  /// C#特殊异常捕捉处理示例
  /// </summary>
  /// <param name="pageNum">页码</param>
  /// <returns>整形的页码</returns>

  private int SpecialException(string pageNum)
  {
    try
    {
      return int.Parse(pageNum);
    }
    catch
    {
      return 0;
    }
  }

顶一下
(1)
100%
踩一下
(0)
0%
标签(Tag):C#
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
猜你感兴趣