我对异常处理非常陌生,在为学校编写这个程序时,我遇到了一些奇怪的错误。
在我的程序中,我有一个类#34; ValidationException"其中包括" Exception"以及其他3个类。
在其中一个类中,有几个方法抛出了" ValidationException" class,在另一个类中,我有几个try和catch块,它们会捕获" ValidationException"。
无论如何,在catch语句中,它不允许我放置" catch(ValidationException e)",它强迫我放置" catch(javax.xml.bind。 ValidationException e)"。
这样做后效果很好。我的j-unit测试用例完全相同。
无论如何,我只是想知道我是否以某种方式搞砸了什么!如果有人可能知道是什么导致了这个或者这个javax.xml.bind会是多么好!
答案 0 :(得分:2)
问题是类名冲突。在您的代码中,默认情况下您的自定义ValidationException在范围内,从而在javax.xml.bind包中屏蔽ValidationException类。由于抛出的异常是与范围不同的ValidationException类,因此只需要识别正确的包。如果您将类命名为MyValidationException,则不必在catch中指定包前缀。
将“package”视为与特定类或类集的“path”类似。