เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การโยนและส่งต่อ Exception

เมื่อเมธอดหนึ่งโยน exception ออกมา เมธอดที่เรียกใช้จะต้องจัดการกับ exception นั้น โดยอาจใช้ try/catch เพื่อดักจับ หรือส่งต่อ exception ไปยังเมธอดที่เรียกมาอีกทีก็ได้ ในแบบฝึกหัดนี้ จะได้เห็นว่าเมธอดที่เรียกใช้สามารถส่งต่อ exception ได้อย่างไร

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เรียกใช้เมธอด dineOut() โดยส่งจำนวน 9 คน เพื่อให้เกิด Exception ขึ้น
  • เนื่องจากเมธอด dineOut() ไม่ได้จัดการ exception เอง ให้ส่งต่อ Exception ออกไป
  • เนื่องจากเมธอด splitBill() ไม่ได้จัดการ exception เอง ให้โยน Exception ออกไป

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

public class RethrowingExample {

	public static void main(String[] args) {
		try {
			// Trigger the exception by calling dineOut with 9 people
			dineOut(____, 50.00);
		} catch (Exception e) {
			System.out.println("Atempting to divide bill with too many diners");
		}
	}

	// Rethrow the Exception
	public static void dineOut(int people, double bill) ____ ____ {
		double each = splitBill(bill, people);
		System.out.println("Bill for each person: " + each);
	}

	// Throw the Exception
	public static double splitBill(double bill, int people) ____ ____ {
		if (people < 3) {
			return bill / people;
		} else {
			throw new Exception();
		}
	}
}
แก้ไขและรันโค้ด