java - 当对象需要在 try/catch block 中时,IDE 的 "know"如何处理?

标签 java eclipse exception intellij-idea try-catch

有时,当我用 Java 编写代码时,我会忘记将一些代码放入 try/catch block 中。 Eclipse 和 IntelliJ Idea 都警告我将它放在 try catch block 中或使函数抛出异常。

我的问题是,IDE 如何识别我的代码何时需要在 try/catch 中?另外,IDE 如何知道应该抛出什么类型的异常? 例如:

// Bad
private static void makeConnection(){
    Connection con = DriverManager.getConnection("someConnection", "someLogin", "somePassword");
}

// Good
private static void makeConnection() throws SQLException{
    Connection con = DriverManager.getConnection("someConnection", "someLogin", "somePassword");
}

// Also Good
private static void makeConnection(){
    try {
        Connection con = DriverManager.getConnection("someConnection", "someLogin", "somePassword");
    }
    catch(Exception ex){
        System.out.println("Error: " + ex.toString());
    }
}

最佳答案

注意这个方法定义中的检查异常:

private static void makeConnection() throws SQLException

如果您尝试调用 makeConnection() 而不使用 try/catch 或向消费方法添加 throws 声明,您会得到同样的警告。

DriverManager.getConnection() 方法具有相同的 throws 声明。 IDE 只是响应已检查的异常声明。

关于java - 当对象需要在 try/catch block 中时,IDE 的 "know"如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28732878/

相关文章:

c# - 不能将 null 值分配给 decimal 类型的成员,该类型是不可为 null 的值类型

java - 处理 Java 字节码中的 Try/Catch 异常? ("stack height inconsistent")

java - 正确处理 AppletViewer 的重新加载和重新启动

Java - 隐藏所有 JButton

java - 或 sql 查询在 java 系统中不起作用-在列中搜索数据

java - 我如何在 fromJson(Reader json, Class<T> classOfT) 中给出 json 对象的路径?

Eclipse 中的 Java 资源文件夹错误

java - Tomcat7 适用于端口 8080 但不适用于 80,Windows7

java - Ubuntu 上的非法模式字符 'Y'

python - 如何在 SWIG 包装器库中将 C++ 异常传播到 Python?