คำถามติดแท็ก try-finally

6
การลองในที่สุดบล็อกจะป้องกัน StackOverflowError
ดูสองวิธีต่อไปนี้: public static void foo() { try { foo(); } finally { foo(); } } public static void bar() { bar(); } การรันbar()อย่างชัดเจนส่งผลให้ a StackOverflowErrorแต่การรันfoo()ไม่ได้ (โปรแกรมดูเหมือนว่าจะรันไปเรื่อย ๆ ) ทำไมถึงเป็นอย่างนั้น?

14
ทำไมเราถึงต้องการประโยค“ สุดท้าย” ใน Python?
ผมไม่แน่ใจว่าทำไมเราต้องfinallyอยู่ในtry...except...finallyงบ ในความคิดของฉันบล็อกรหัสนี้ try: run_code1() except TypeError: run_code2() other_code() เหมือนกันกับสิ่งนี้โดยใช้finally: try: run_code1() except TypeError: run_code2() finally: other_code() ฉันพลาดอะไรไปรึเปล่า?

7
เหตุใดการเปลี่ยนแปลงตัวแปรที่ส่งคืนในบล็อกในที่สุดจึงไม่เปลี่ยนค่าส่งคืน
ฉันมีคลาส Java ง่ายๆดังที่แสดงด้านล่าง: public class Test { private String s; public String foo() { try { s = "dev"; return s; } finally { s = "override variable s"; System.out.println("Entry in finally Block"); } } public static void main(String[] xyz) { Test obj = new Test(); System.out.println(obj.foo()); } } และผลลัพธ์ของรหัสนี้คือ: …
146 java  try-finally 

11
Java Try Catch สุดท้ายบล็อกโดยไม่จับ
ฉันกำลังตรวจสอบโค้ดใหม่ โปรแกรมมีการทดลองและบล็อกสุดท้ายเท่านั้น เนื่องจากบล็อก catch ถูกแยกออกการ try block จะทำงานอย่างไรหากพบข้อยกเว้นหรือสิ่งใดที่สามารถโยนได้ มันไปที่บล็อกสุดท้ายโดยตรงหรือไม่?

10
เหตุใดผลตอบแทนใน "ในที่สุด" จึงแทนที่ "ลอง"
คำสั่งส่งคืนภายในบล็อก try / catch ทำงานอย่างไร function example() { try { return true; } finally { return false; } } ฉันคาดหวังว่าผลลัพธ์ของฟังก์ชันนี้จะเป็นtrueแต่มันกลับเป็นfalse!

11
ความแตกต่างระหว่างลองในที่สุดและลองจับ
อะไรคือความแตกต่างระหว่าง try { fooBar(); } finally { barFoo(); } และ try { fooBar(); } catch(Throwable throwable) { barFoo(throwable); // Does something with throwable, logs it, or handles it. } ฉันชอบเวอร์ชันที่สองมากกว่าเพราะมันทำให้ฉันสามารถเข้าถึง Throwable ได้ มีความแตกต่างทางตรรกะหรือรูปแบบที่ต้องการระหว่างสองรูปแบบหรือไม่? นอกจากนี้ยังมีวิธีเข้าถึงข้อยกเว้นจากประโยคสุดท้ายหรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.