我希望在发布时避免崩溃,即使出现问题。这就是为什么我不想抛出异常,因为我知道它们不会被处理。
在调试模式下,我希望这样做,因为在调试过程中,尽可能多地获取有关错误的信息是很好的。
问题在于,如果我像这样做:
if (DEBUG_MODE) throw e;
那么我需要指定该方法抛出异常,但我不想这样做,因为在发布中不是真的需要这样。
应该如何处理这个问题?
编辑
PS
我的问题没有表述清楚,对不起。
在我的情况下,断言并不是很方便。问题在于,我已经知道某些事情出了问题,因此我没有任何东西可以断言。为了更清楚地说明,我有意外的异常。当然,你可以说:写出不会出现意外异常的代码。但是,如果出现问题,我不希望应用程序崩溃。现在我添加了一个这样的函数:
尽管您的所有答案都是正确的,但我会选择最接近我所做的答案。
PS2
另一个情况是当您实现像状态这样的模式时,断言不是真正方便的情况。如果对于某个状态,您希望某个方法永远不会被调用...
在调试模式下,我希望这样做,因为在调试过程中,尽可能多地获取有关错误的信息是很好的。
问题在于,如果我像这样做:
if (DEBUG_MODE) throw 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
另一个情况是当您实现像状态这样的模式时,断言不是真正方便的情况。如果对于某个状态,您希望某个方法永远不会被调用...