Java命名约定-使用;试一试;用于分隔异常处理的前缀
Java命名约定-使用;试一试;用于分隔异常处理的前缀,java,naming-conventions,Java,Naming Conventions,根据Robert C.Martin的“干净代码”,异常处理应该以单独的方法进行。在一个示例中,作者使用“try”(或“tryTo”)前缀来区分公共方法和私有方法,以执行下面的适当逻辑 public void doSomething() { try { tryToDoSomething(); catch (Exception ex) { //handle exception } } public void tryDoSomething()
public void doSomething() {
try {
tryToDoSomething();
catch (Exception ex) {
//handle exception
}
}
public void tryDoSomething() throws Exception {
// appropriate logic
}
这是正确的惯例吗?也许方法名应该是相反的?使用包含try-catch块的“try”作为方法前缀是否更好,如下所示(类似于C#约定)
在第一种方法中,公共方法名更短,更容易理解。
另一方面,为了使代码一致,我应该为每个抛出异常的方法加上前缀。
你喜欢什么习俗
exception e
,IOException ioe
,NullPointerException npe
等,除非我遇到类似于double e=Math.e
的冲突,然后我先使用Exception exc
第一件事,你不应该直接捕捉Exception
;不要忘记RuntimeException
扩展了Exception
。我个人会对周围的方法使用doSomething()
,对try-catch方法使用trytodosmething()
。这是因为(正如您已经说过的)否则,您必须命名每个可能引发异常的方法,如try..which
,此外,tryToDoSomething
应该只针对整个doSomething
中的一小部分(引发异常的小部分)。所以它实际上并没有完成某些事情的全部,只完成了其中的一部分:)只要方法名告诉我该方法将要做什么,并且尽可能简洁,我就很高兴。我认为大多数有能力的程序员会发现它会抛出异常,因为throws
子句(IDE将在调用该方法后通知您)。Java文档对于让程序员知道也很有用。这纯粹是一个基于观点的问题,但我很喜欢看到其他人如何编写代码以及为什么要这样做。
public void tryDoSomething() {
try {
doSomething();
catch (Exception ex) {
//handle exception
}
}
public void doSomething() throws Exception {
// appropriate logic
}