加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

仅在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.

话虽这么说,你应该真正看看断言,或者正如其他回复所说,一个适当的日志框架.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读