小编uth*_*mas的帖子

try catch块创建干净代码的最佳实践是什么?

可能重复:
JAVA或C#中的异常管理的最佳实践

我今天早些时候在stackoverflow上读过一个问题,它让我思考处理异常的最佳实践是什么.

所以,我的问题是处理异常以产生干净和高质量代码的最佳实践什么.

这是我的代码,我认为它很安静,但如果我错了或不清楚,请告诉我!我试图在方法中牢记可测试性和相同的抽象级别.

每一条建设性意见都受到欢迎.:)

import java.awt.Point;
import java.io.Closeable;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.common.base.Preconditions;

/**
 * <p>This is a dummy code.</p>
 * The aim is present the best practice on exception separation and handling.
 */
public class ExceptionHandlingDemo {
    // System.out is not a good practice. Using logger is good for testing too (can be checked if the expected error messages …
Run Code Online (Sandbox Code Playgroud)

java exception-handling

10
推荐指数
2
解决办法
1万
查看次数

错误 1305 (42000):保存点...不存在

我的 MYSQL 数据库中有这个 SQL(存储过程为空,所以我猜没有隐式提交?)。

DROP PROCEDURE IF EXISTS doOrder;

DELIMITER $$

CREATE PROCEDURE doOrder(IN orderUUID VARCHAR(40))
  BEGIN
    SAVEPOINT sp_doOrder;

    BEGIN
      DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK TO sp_doOrder;

      -- doing my updates and selects here...

    END;

    RELEASE SAVEPOINT sp_doOrder;
  END $$

DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

当我

call doOrder('some-unique-id');
Run Code Online (Sandbox Code Playgroud)

我得到:错误 1305 (42000): SAVEPOINT sp_doOrder 不存在。

我可能会忽略一些事情......有什么想法吗?

mysql savepoints

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

exception-handling ×1

java ×1

mysql ×1

savepoints ×1