我有UserDoesNotHaveApiKey异常,代码如下:
public class UserDoesNotHaveApiKeyException extends Exception {}
现在在Splash屏幕上,我会检查用户是否有API密钥,我想在onError中打开UserDoesNotHaveApiException并打开登录屏幕。
正如你可以在onError里面我有if语句,它总是转到其他地方,即使很明显我有一个正确的异常。
为什么?
长话短说,RuntimeException与其他异常不同。
你可以抛出一个异常,它的一个适当的现有子类(除了RuntimeException
及其未选中的子类),或者Exception
的自定义子类。
在Java中,有两种类型的异常 - 已检查和未经检查的异常。以下是摘要:
- 选中 - 扩展
java.lang.Exception
,获取可恢复的条件,显式尝试捕获异常,编译错误。- 未选中 - 扩展
java.lang.RuntimeException
,用于不可恢复的条件,如编程错误,不需要try-catch,运行时错误。