是否存在“一般逻辑错误异常”?

时间:2015-06-30 01:23:24

标签: java exception exception-handling

通常情况下,如果要抛出异常,那么代码就会完全崩溃,而且你无法做到这一点。

例如,如果我正在设置我的dataSource:

    try {
        Class.forName("org.neo4j.jdbc.Driver");
    } catch (ClassNotFoundException e1) {

        e1.printStackTrace();
    }
    this.dataSource.setDriverClassName("org.neo4j.jdbc.Driver");        
    this.jdbcTemplate  = new JdbcTemplate(this.dataSource);

如果抛出此异常,显然我需要整理我的代码。

显然我不应该只打印这个堆栈跟踪,可能更好的做法是弹出异常,提醒用户出现问题,通知管理员,并记录错误。

我的问题是 - 我应该在这做什么?我只是抛出ClassNotFoundException吗?或者我可以将它包装在更通用的“此例外是致命的”例外吗?

1 个答案:

答案 0 :(得分:1)

我建议使用assert语句。 assert语句的全部目的是查找和标记错误。

在你的特定情况下,我想你可以这样做:

try {
    Class.forName("org.neo4j.jdbc.Driver");
} catch (ClassNotFoundException e1) {
    assert (false) : "Class org.neo4j.jdbc.Driver doesn't seem to exist. "
                   + "Please find the address of the developer of this program, "
                   + "knock on his door, and demand your money back.";
}

(完全是个玩笑)