我对异常处理非常陌生,在为学校编写该程序时,出现了一些奇怪的错误。

在我的程序中,我有一个“ ValidationException”类(扩展了“ Exception”)和其他3个类。

在一个类中,有几种方法都投给了“ ValidationException”类,而在另一类中,我有几个try and catch块,它们捕获了“ ValidationException”。

无论如何,在catch语句中,不允许我放置“ catch(ValidationException e)”,这迫使我放置“ catch(javax.xml.bind.ValidationException e)”。

完成此操作后,一切正常。我的j单元测试用例发生了完全相同的事情。

无论如何,我只是想知道我是否以某种方式搞砸了!如果有人知道是什么原因或javax.xml.bind是什么原因,那就太好了!

最佳答案

问题是类名冲突。在您的代码中,默认情况下,自定义ValidationException位于范围内,从而屏蔽了javax.xml.bind包中的ValidationException类。由于抛出的异常是不同于作用域的ValidationException类,因此只需要您标识正确的程序包。如果您将类命名为MyValidationException,则不必在catch中指定包前缀。

可以将“包”视为类似于特定类或一组类的“路径”。

09-25 21:22