gpt4 book ai didi

java - 难以理解 try-catch-finally block 的工作

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:46:08 24 4
gpt4 key购买 nike

如果我错了请纠正我,但是,我相信 try block 中的语句首先被执行,然后,如果发生任何异常,finally< 中的语句 block 被执行,然后 catch block 中的语句被执行。如果没有异常发生,则执行完 try block 中的语句后执行 finally block 中的语句,并跳过 catch block 中的语句。

如果我上面的想法没有错,那么我不明白为什么这段代码不起作用:

// sock is an object of the class Socket
public void run() {
try {
in = sock.getInputStream();
scan = new Scanner(in);
out = sock.getOutputStream();
pw = new PrintWriter(out);
} catch (IOException e) {
e.printStackTrace();
} finally {
sock.close();
}
}

它仍然说我需要用 try-catch 包围 finally block 中的语句。

最佳答案

不! try block 中的语句首先执行。然后,如果发生任何异常,则执行 catch block 语句。最后执行 finally block 。即使 try block 中发生异常,finally block 也会被执行。换句话说,如果没有发生异常,则首先执行 try block ,然后执行 finally block 。

关于java - 难以理解 try-catch-finally block 的工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29998600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com