我要在我的应用程序中实现异常处理。我应该多加小心。请指出。
我的策略: 我正在创建用户定义的Exception类。它应该扩展RuntimeException还是Exception?
然后我想从每个catch块中抛出异常然后我会在我的类中决定该异常类型的实例是什么。在此基础上,我将宣称它的严肃性类似于致命的批评。
这两者之间存在差异:
public class MyException extends RuntimeException{
}
public class MyException extends Exception{
}
答案 0 :(得分:2)
请阅读checked and unchecked Exceptions。
延长RuntimeException
的例外不需要catch
块。延长Exception
的例外需要catch
块,因此我认为您希望扩展Exception
并使用已检查的例外。
答案 1 :(得分:1)
这两个陈述之间存在差异。
当您执行MyException extends RuntimeException
时,它是未经检查的例外,因此您不必将方法声明为throw
例外。
另一个语句是 checked 异常,您必须声明使用它的方法throw
异常。
然后我想从每个catch块中抛出异常
有理由这样做吗?这两种情况都没有意义。
答案 2 :(得分:0)
我认为你需要做的第一个区别是你想要它像Java中的checked vs unchecked异常。如果您确实查看了ArrayIndexOutOfBounds异常是怎样的,以及SQL异常是怎么回事。 运行时异常通常是由于异常情况而发生的错误或缺陷。
在您的情况下,我认为您不需要它作为运行时异常,因为您将在您的代码中处理它。