java - 长时间尝试语句

标签 java exception variables try-catch

将函数的大部分代码放在 try 语句 中有什么缺点吗?如果我做一些需要 try 语句 的事情,我通常最终会在 try 语句中为该函数做很多工作,因为我通常会在那里声明我的变量并且不能在该范围之外使用它们如果我这样做。这是否普遍并被接受?人们是否通常在不初始化变量的情况下先声明变量,这样他们就不会在 try 语句 中执行所有操作(包括对其他函数的调用)?还是很长也没关系?

最佳答案

一个方法应该做一件事并且把它做好。在这种情况下,您的方法会做两件事:业务逻辑和错误处理:

public Foo bar() {
    try {
        //business logic that may throw
        //...
        //end even more
    } catch(BuzzException e) {
        //Error handling
    }
}

我经常发现自己将 try block 的内容提取到一个没有错误处理的单独方法中:

public Foo bar() {
    try {
        return unsafeBar();
    } catch(BuzzException e) {
        //Error handling
    }
}

public Foo unsafeBar() throws BuzzException {
    //business logic that may throw
    //...
    //end even more
}

关于java - 长时间尝试语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14913854/

相关文章:

java HttpClient 403禁止问题?

javascript - node.js 域是自动清理还是我必须调用 domain.dispose()

ajax - 对 azure 云服务的 ajax 调用的异常处理

Java-使用扫描仪并将变量传递给其他方法

java - 如何在c#中复制java加密

java - 优化 BerkeleyDB JE 数据库

java - 使用 REST API 将 swift 3 webservice 多次数据插入数据库

c# - 异常消息应该存储在哪里

loops - 如果列表为空,Ansible 如何跳过循环

python - 在类里面创建列表的更好方法?