Try-Catch你真的很懂吗?

小技巧-Try Catch

与多线程,业务逻辑等比较复杂的功能打交道时,免不了对部分有可能产生不可预期的代码进行异常捕获。

这种异常可能不处理,比如:

?
1
2
3
4
5
try
{
 
}
catch {}

但是如果一旦发生异常,在程序调试的时候,发现vs输出界面中报了一个”System.ModCore.Dll“发生一个异常”之类的提示,但是在”System.ModCore.Dll”中没法立即

定位到错误位置,得一步一步的调试程序,何其苦逼,2013-11-13 11:11:00秒突然灵光一闪,我们把它改一下,变成如下形式:

?
1
2
3
4
5
6
7
8
9
try
{
                                 
}
catch (Exception ex)
{
      //不抛出异常,只在debug模式下打印
      System.Diagnostics.Debug.WriteLine(ex.Message);
}

卧槽,顿悟啊。。。。。一辈子受用,这会节约多少调试时间????????????

 

 

这么一个小技巧却经历了一年多才发现其巨大的价值,因为对我的冲击比较大,邃记录下来,与君共享!


下面是运行时截图!
这里写图片描述











这里写图片描述

明白了,如果你想在方法执行过程中遇到异常时,避免执行写入 txt 文件的操作,你可以采取以下策略: 1. **嵌套 try-catch**: 将写入 txt 文件的方法放在一个单独的 try 块中,然后在外层的 catch 块捕获异常,取消写入操作。例如: ```java try { // 业务处理代码 // ... writeToFile(); // 写入 txt 文件的操作 } catch (Exception e) { // 异常处理,记录错误,回滚事务等 log.error("An error occurred", e); // 阻止写入 txt 文件 writeToFile = null; // 或者 return; } ``` 2. **使用 Finally 块**: 如果你想确保无论是否发生异常都一定会尝试写入 txt 文件,但仍然想在异常发生时跳过,可以在 finally 块中添加一个条件检查: ```java try { // 业务处理代码 } catch (Exception e) { // 异常处理 } finally { if (isBusinessSuccessful()) { // 如果业务成功,则写入 txt 文件 writeToFile(); } } private boolean isBusinessSuccessful() { // 根据实际业务状态判断是否执行写入操作,例如,返回 true 或 false } ``` 3. **自定义异常处理器**: 在 Spring MVC 中,你可以创建一个全局异常处理器(如 `@ControllerAdvice`),在那里拦截并处理异常。在处理器中,你可以选择在异常发生时跳过写入: ```java @ExceptionHandler public void handleException(Exception e) { // 处理异常 log.error("An error occurred", e); // 在这里直接返回,阻止写入 txt 文件 return; } ``` 通过以上方法,你可以确保在遇到异常时,txt 文件的写入操作不会被执行。记得在处理异常时,还要考虑数据回滚、错误报告和其他必要的清理工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值