可能重复:
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) 我的 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 不存在。
我可能会忽略一些事情......有什么想法吗?