c#简单自定义异常处理日志辅助类

 using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 
  namespace LogHelper
  {
     public static class LogHelper
     {
         //拼接日志目录
         static string appLogPath = AppDomain.CurrentDomain.BaseDirectory + "log/";
         /// <summary>
         /// 写入日志
         /// </summary>
         /// <param name="ex">异常对象</param>
         public static void WriteLog(Exception ex)
         {
             //日志目录是否存在 不存在创建
             if (!Directory.Exists(appLogPath))
            {
                Directory.CreateDirectory(appLogPath);
            }
             StringBuilder logInfo = new StringBuilder("");
            string currentTime = System.DateTime.Now.ToString("[yyyy-MM-dd HH:mm:ss]");
            if (ex != null)
             {
                logInfo.Append("\n");
                logInfo.Append(currentTime + "\n");
                 //获取描述当前的异常的信息
                 logInfo.Append(ex.Message + "\n");
                //获取当前实例的运行时类型
                 logInfo.Append(ex.GetType() + "\n");
                 //获取或设置导致错误的应用程序或对象的名称
                 logInfo.Append(ex.Source + "\n");
                 //获取引发当前异常的方法
                logInfo.Append(ex.TargetSite + "\n");
                 //获取调用堆栈上直接桢的字符串表示形式
                 logInfo.Append( ex.StackTrace + "\n");
             }
             System.IO.File.AppendAllText(appLogPath + DateTime.Now.ToString("yyyy-MM-dd") + ".log", logInfo.ToString());
         }
 
     }
 }

调用方法:

     try
             {
                 while (true)
                 {
                     int a = Convert.ToInt32(Console.ReadLine());
                     Console.WriteLine("您输入的是:" + a);
                 }
 
             }
             catch (Exception ex)
             {

                 LogHelper.WriteLog(ex);
             }
             Console.Write("OVER");
            Console.Read();
 }

 

转载于:https://www.cnblogs.com/siyunianhua/p/6950835.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
超级多的C#辅助大全 网上有各式各样的帮助,公共,但是比较零碎,经常有人再群里或者各种社交账号上问有没有这个helper,那个helper,于是萌生了收集全部helper的念头,以便日后使用。各式各样的几乎都能找到,所有功能性代码都是独立的之间没有联系,可以单独引用至项目。 1. C#读取AD域里用户名或组 2. Chart图形 3. cmd 4. Cookie&Session 5. CSV文件转换 6. DataTable转实体 7. DBHelper 8. DecimalUtility及中文大写数字 9. DLL 10. Excel操作 11. FTP操作 12. H5-微信 13. Html操作 14. INI文件读写 15. IP辅助 16. Javascript 17. Json 18. JSON操作 19. JS操作 20. Lib 21. Mime 22. Net 23. NPOI 24. obj 25. packages 26. Path 27. PDF 28. Properties 29. QueryString 地址栏参数 30. RDLC直接打印帮助 31. ResourceManager 32. RMB 33. SqlHelper 34. SQL语句拦截器 35. URL的操作 36. VerifyCode 37. XML操作 38. 上传下载 39. 二维码操作 40. 共用工具 41. 其他 42. 分词辅助 43. 分页 44. 加密解密 45. 压缩解压缩 46. 各种验证帮助 47. 图片 48. 图片操作 49. 图片验证码 50. 处理多媒体的公共 51. 处理枚举 52. 字符串 53. 对象转换处理 54. 帮助文档 55. 序列化 56. 异步线程 57. 弹出消息 58. 数据展示控件绑定数据 59. 文件操作 60. 日历 61. 日志 62. 时间戳 63. 时间操作 64. 条形码 65. 条形码帮助 66. 条形码转HTML 67. 检测是否有Sql危险字符 68. 正则表达式 69. 汉字转拼音 70. 注册表操作 71. 科学计数,数学 72. 型转换 73. 系统操作相关的公共 74. 缓存 75. 网站安全 76. 网站路径操作 77. 网络 78. 视频帮助 79. 视频转换 80. 计划任务 81. 邮件 82. 邮件2 83. 配置文件操作 84. 阿里云 85. 随机数 86. 页面辅助 87. 验证码
C#中,我们可以通过自定义异常来处理应用程序中可能出现的异常情况。自定义异常需要继承自`System.Exception`。 以下是一个简单自定义异常的实现示例: ```csharp public class MyException : Exception { public MyException() { } public MyException(string message) : base(message) { } public MyException(string message, Exception innerException) : base(message, innerException) { } } ``` 在上面的代码中,我们定义了一个名为`MyException`的自定义异常。该继承自`System.Exception`,并提供了三个构造函数。第一个构造函数是默认的构造函数,第二个构造函数接受一个字符串参数,用于指定异常消息,第三个构造函数接受两个参数,第一个参数是异常消息,第二个参数是内部异常。 通过自定义异常,我们可以在应用程序中抛出符合我们需求的异常,这样可以更好地处理应用程序中可能出现的异常情况。以下是一个示例: ```csharp public class MyClass { public void DoSomething(int input) { if (input < 0) { throw new MyException("Input cannot be negative."); } } } class Program { static void Main(string[] args) { MyClass myClass = new MyClass(); try { myClass.DoSomething(-1); } catch (MyException ex) { Console.WriteLine(ex.Message); } } } ``` 在上面的代码中,我们在`MyClass`的`DoSomething`方法中检查输入是否为负数,如果是负数,则抛出`MyException`异常。在`Main`方法中,我们捕获了`MyException`异常,并输出了异常消息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值