เรารู้ว่าการลองมีหน้าที่รับผิดชอบในการพิมพ์รหัสที่อาจสร้างข้อยกเว้น Catch มีหน้าที่รับผิดชอบในการจัดการข้อยกเว้นที่เป็นไปได้ในการลองเช่นบันทึกข้อผิดพลาดในการบันทึกเพื่อให้ธุรกิจสามารถทำงานได้ตามปกติ ในที่สุดก็รับผิดชอบงานหลังจากการปล่อยทรัพยากรและรหัสที่ต้องดำเนินการโดยไม่คำนึงว่ามีหรือไม่ถูกวางไว้โดยทั่วไปในที่สุด หากจับได้และในที่สุดก็มีข้อยกเว้นสิ่งที่จะเกิดขึ้น?
ลอง {// java.lang.arithmeticexception int a = 1 /0; } catch (exception e) {system.out.println ("catch"); // java.lang.nullpointerexception ค่าสตริง = null; System.out.println (value.length ()); } ในที่สุด {system.out.println ("สุดท้าย"); // java.lang.arrayIndexoutofboundsexception int [] array = {1, 2, 3}; System.out.println (อาร์เรย์ [6]); -ผลการดำเนินการขั้นสุดท้ายของรหัสนี้คือ: arrayIndexoutofboundsexception จะถูกโยนลง ข้อยกเว้นเกิดขึ้นในรหัสในการลองและการจับที่เกี่ยวข้องจะถูกดำเนินการ;
หากข้อยกเว้นเกิดขึ้นเมื่อจับได้มันจะถูกดำเนินการในที่สุด; หากในที่สุดก็มีข้อยกเว้นมันจะถูกโยนลงไปที่ JVM โดยตรงเพราะไม่ได้ดำเนินการ หากไม่ได้ใช้ที่นี่
ในที่สุดบล็อก nullpointerexception จะถูกโยน
ซึ่งหมายความว่าข้อยกเว้นที่ปรากฏใน Catch และในที่สุดจะถูกโยนโดยตรง หากเราไม่ประมวลผลข้อผิดพลาดจะถูกสร้างขึ้นที่รันไทม์ สิ่งนี้เตือนเราว่าหากมีการจับและข้อยกเว้นในที่สุดก็อาจเกิดขึ้นได้การลองจับจะต้องดำเนินการอีกครั้ง
บางสิ่งที่น่าสังเกต (ต้องอ่าน) ในบทความข้างต้น "ลอง-จับ-สุดท้าย" เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น