我有一个有方法的类.该方法可能会失败,我想抛出异常.在函数抛出异常的类的命名空间中定义异常类是不是很糟糕?我还没有看到很多这方面的例子,但似乎是"正确"(即OO)的方式呢?我有理由避免这种模式并在自己的文件中定义每个自定义异常吗?
public class Foo
{
void bar() {
// do something and throw BarException if something bad happens
}
public static class BarException extends Exception {
// rest of class definition
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这取决于Exception你创造的可能范围.如果它只需要Foo,并且只有Foo永远,那么将它创建为嵌套类将是好的.
只要确保调用的内容有意义Bar:
catch (Foo.BarException e)
Run Code Online (Sandbox Code Playgroud)
代替
catch (BarException e)
Run Code Online (Sandbox Code Playgroud)
否则,将其创建为自己的独立类.
至于命名空间,Java类可用于命名空间类,但通常在Java包中用于命名空间类.如果主类和另一个类之间存在非常高的耦合,我只会使用嵌套类.
| 归档时间: |
|
| 查看次数: |
4020 次 |
| 最近记录: |