Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java命名约定-使用;试一试;用于分隔异常处理的前缀_Java_Naming Conventions - Fatal编程技术网

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()

  • 根据Robert C.Martin的“干净代码”,异常处理应该以单独的方法进行。在一个示例中,作者使用“try”(或“tryTo”)前缀来区分公共方法和私有方法,以执行下面的适当逻辑

    public void doSomething() {
        try {
            tryToDoSomething();
        catch (Exception ex) {
            //handle exception
        }
    }
    
    public void tryDoSomething() throws Exception {
        // appropriate logic
    }
    
    这是正确的惯例吗?也许方法名应该是相反的?使用包含try-catch块的“try”作为方法前缀是否更好,如下所示(类似于C#约定)

    在第一种方法中,公共方法名更短,更容易理解。 另一方面,为了使代码一致,我应该为每个抛出异常的方法加上前缀。 你喜欢什么习俗


  • 对于try-catch-block-exception,ex,e中的异常变量,您更喜欢使用什么名称?这是一个细节,但我真的很感兴趣

    我想这是一种观点,但重点是前缀“try”应该理解为“可能不时抛出一些异常,小心”,而不是“它是try-catch的包装,可能最后,请查看无前缀的变体”。前者在行为上没有后者那么令人惊讶,并且扮演了一个定义明确的角色,而不是“跳过我”。我通常使用异常的大写字母,
    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
    }