记录一次经典的错误

使用mybatis-plus 时,实体类的 id 字段 没有加上 @TableId 注解时,出现的异常

Invalid bound statement (not found): com.xxxxx.xxxxx.mapper.UserRelMapper

原因:mybatis 无法映射到实体类的ID,没法调用byId方法,绑定失败。

### 使用委托实现错误码的日志记录 在 C# 中,可以通过定义一个多播委托来实现错误码的日志记录功能。这样做的好处是可以动态地绑定多个日志记录方法,在发生错误一次性调用所有注册过的日志函数。 #### 定义委托类型 首先需要定义一个适合用于错误处理场景的委托类型: ```csharp public delegate void ErrorLogger(int errorCode, string errorMessage); ``` 此委托接受两个参数:一个是整数类型的 `errorCode` 表示具体的错误编号;另一个是字符串类型的 `errorMessage` 描述发生的错误信息[^2]。 #### 创建具体日志记录方法 接着创建几个不同的日志记录方法,它们都将遵循上面所定义的签名形式: ```csharp private static void LogToConsole(int code, string message) { Console.WriteLine($"控制台输出 - 错误代码: {code}, 消息: {message}"); } private static void LogToFile(int code, string message) { File.AppendAllText("errors.log", $"文件记录 - 错误代码: {code}, 消息: {message}{Environment.NewLine}"); } ``` 这里展示了两种简单的日志方式——向控制台打印消息和追加文本至指定文件中去。 #### 组合与触发日志器 最后一步就是组合这些单独的日志处理器成为一个整体,并提供一种机制以便于当遇到异常情况时能自动激活整个链条上的每一个成员工作起来: ```csharp // 初始化多播委托实例并将各个日志方法附加上去 ErrorLogger logger = null; logger += LogToConsole; logger += LogToFile; try { // 可能会抛出异常的操作... } catch (Exception ex) { int errorNumber = 500; // 假设这是一个内部服务器错误 // 调用所有的日志记录者 logger?.Invoke(errorNumber, $"{ex.GetType().Name}: {ex.Message}" ); throw; // 如果希望重新抛出原始异常的话 } ``` 这段代码片段里包含了对可能出现的问题进行捕捉并利用前面提到的方式完成相应的日志保存动作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值