仅在java中的调试模式下抛出异常
发布时间:2020-12-15 05:07:55 所属栏目:Java 来源:网络整理
导读:即使出现问题,我也希望避免崩溃.这就是为什么我不想抛出我知道不会被处理的异常. 在调试模式下,我想这样做,因为在调试期间出现错误时,尽可能多地获取噪声是很好的. 问题是如果我做了类似的事情: if(DEBUG_MODE)抛出e; 然后我需要指定该方法抛出异常,但我不
即使出现问题,我也希望避免崩溃.这就是为什么我不想抛出我知道不会被处理的异常.
在调试模式下,我想这样做,因为在调试期间出现错误时,尽可能多地获取噪声是很好的. 问题是如果我做了类似的事情: if(DEBUG_MODE)抛出e; 然后我需要指定该方法抛出异常,但我不想这样做,因为在发布中不是这样. 处理这个问题的最佳方法是什么? 编辑 PS 我的问题不是很清楚. 在我的情况下,断言并不是很方便.问题是我已经知道出了什么问题,所以我没有任何要断言的东西.为了更清楚,我有意想不到的例外.当然你可以说:编写代码不要有意外的异常.但是如果出现问题,我不希望应用程序崩溃.现在我添加了一个这样的函数: public static void unexpectedException(String string,Exception e) { if (Build.DEBUG) { MyApp.errorLog(string); throw new RuntimeException(e); } else MyApp.errorLog(string,e); } 虽然你的所有答案都是正确的,但我会选择一个比我所做的更接近的答案 PS2 断言不太方便的另一种情况是当你实现类似状态的模式时.如果对于某些州,你期望一种方法永远不会被调用…… 解决方法
如果你不想像你真的那样使用断言,你可以从RuntimeException派生你的异常.然后,您不必在方法头中将它们声明为throws.
话虽这么说,你应该真正看看断言,或者正如其他回复所说,一个适当的日志框架. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |