ПочатиПочніть безкоштовно

Об'єкт Exception

Не дивно, що певний фрагмент коду може кидати кілька винятків. Один зі способів упоратися з цим — перехопити всі винятки блоком try-catch, а потім використати об'єкт Exception, щоб з'ясувати, що сталося, і вивести інформацію з Exception для налагодження проблеми.

Тут ви знову зміните застосунок SplitTheBill, щоб catch перехоплював загальний Exception і використав дані з об'єкта Exception для розуміння причини проблеми. Об'єкти Exception містять багато корисної інформації, зокрема трасу методів, що привели до помилки.

Ця вправа є частиною курсу

Типи даних і винятки в Java

Переглянути курс

Інструкції до вправи

  • У блоці catch перехопіть будь-який Exception, використавши catch (Exception e).
  • Скористайтеся об'єктом Exception та його посиланням (e) і методом getClass() у блоці catch, щоб показати тип (клас) перехопленого винятку.
  • Використайте посилання на об'єкт Exception (e) і метод getMessage(), щоб вивести повідомлення винятку.
  • Виведіть «стек викликів» у потік виведення за допомогою посилання на об'єкт Exception (e) і методу printStackTrace().

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

class SplitTheBill {
	public static void main(String[] args) {
		BigDecimal bill = new BigDecimal(125.50);
		computeEachBill(bill, 5);
		computeEachBill(bill, 0);
	}

	public static void computeEachBill(BigDecimal bill, int people) {
		try {
			BigDecimal numPeople = new BigDecimal(people);
			BigDecimal individualBill = bill.divide(numPeople);
			System.out.println("Bill for each person is: " + individualBill);
            // Catch any exception
		} catch (____ ____) {
			System.out.println("You didn't provide a positive number of people to split the bill among.");
            // Print the type (class) of exception
			System.out.println("Type of exception: " + ____.____());
            // Print the exception message
			System.out.println(____.____());
            // Print the stack trace
            ____.____();
		}
	}
}
Редагувати та запускати код