English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Исключения - это проблемы, которые могут возникнуть во время выполнения программы (время выполнения ошибок). При возникновении исключения программа внезапно останавливается, и код, расположенный после строки, которая вызyla исключение, никогда не будет выполнен.
В Java вы можете использовать один из методов, наследованных от класса Throwable, чтобы распечатать сообщение об исключении.
printStackTrace() -Этот метод выводит отладочную информацию в стандартный поток ошибок.
getMessage() -Этот метод возвращает детельное строковое сообщение текущего объекта, который можно выбросить.
toString() -Это сообщение показывает краткое описание текущего объекта, который можно выбросить.
import java.util.Scanner; public class PrintingExceptionMessage { public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.println("Enter first number:"); int a = sc.nextInt(); System.out.println("Enter second number:"); int b = sc.nextInt(); try { int c = a/b; System.out.println("The result is: " + c); catch(ArithmeticException e) { System.out.println("Вывод метода printStackTrace(): "); e.printStackTrace(); System.out.println(" "); System.out.println("Вывод метода getMessage(): "); System.out.println(e.getMessage()); System.out.println(" "); System.out.println("Вывод метода toString(): "); System.out.println(e.toString()); } } }
Результат вывода
Enter first number: 10 Enter second number: 0 Результат метода printStackTrace(): java.lang.ArithmeticException: / by zero Результат метода getMessage(): / by zero Результат метода toString(): java.lang.ArithmeticException: / by zero at PrintingExceptionMessage.main(PrintingExceptionMessage.java:11)
Повторноеthrow исключительной ситуации-Вы можете повторно抛ить исключительную ситуацию,捕获ленную в блоке catch, используя ключевое слово new. При выполнении этой операции вам нужно передать объект исключительной ситуации и строку, представляющую сообщение, а затем показать переданное сообщение оригинального сообщения.
import java.util.Scanner; public class PrintingExceptionMessage { public static void main(String args[]) throws Exception { String msg = "This is my custom message"; Scanner sc = new Scanner(System.in); System.out.println("Enter first number:"); int a = sc.nextInt(); System.out.println("Enter second number:"); int b = sc.nextInt(); try { int c = a/b; System.out.println("The result is: " + c); catch(ArithmeticException e) { throw new Exception("CoustomMessage: " + msg, e); } } }
Результат вывода
Enter first number: 25 Enter second number: 0 Exception in thread "main" java.lang.Exception: CoustomMessage: This is my custom message at july_set3.PrintingExceptionMessage.main(PrintingExceptionMessage.java:16) Caused by: java.lang.ArithmeticException: / by zero at july_set3.PrintingExceptionMessage.main(PrintingExceptionMessage.java:13)
Создание пользовательской исключительной ситуации-Вы можете создать и повторно抛ить пользовательскую исключительную ситуацию с необходимым сообщением.
import java.util.Scanner; class MyException extends Exception{ public MyException(String msg){ super(msg); } } public class PrintingExceptionMessage { public static void main(String args[]) throws Exception { String msg = "This is my custom exception"; Scanner sc = new Scanner(System.in); System.out.println("Enter first number:"); int a = sc.nextInt(); System.out.println("Enter second number:"); int b = sc.nextInt(); try { int c = a/b; System.out.println("The result is: " + c); catch(ArithmeticException e) { MyException exce = new MyException(msg); throw exce; } } }
Результат вывода
Enter first number: 14 Enter second number: 0 Exception in thread "main" july_set3.MyException: This is my custom exception at july_set3.PrintingExceptionMessage.main(PrintingExceptionMessage.java:23)