Java 如何实现IDE';s";“知道”;当对象需要位于try/catch块中时?

Java 如何实现IDE';s";“知道”;当对象需要位于try/catch块中时?,java,eclipse,exception,intellij-idea,try-catch,Java,Eclipse,Exception,Intellij Idea,Try Catch,有时,当我用Java编写代码时,我会忘记在try/catch块中放入一些代码。Eclipse和IntelliJ Idea都警告我将其放入try-catch块或使函数抛出异常 我的问题是,IDE如何识别我的代码何时需要处于try/catch状态?另外,IDE如何知道应该抛出什么类型的异常? 例如: // Bad private static void makeConnection(){ Connection con = DriverManager.getConnection("someCo

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

我的问题是,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()
方法只是具有相同的
抛出声明。IDE只是对选中的异常声明做出响应。

您认为函数声明中的
抛出SQLException
意味着什么?