Java 异常 - Try...Catch
在本教程中,您将学习如何使用Java异常-Try...CatchJava异常在执行Java代码时,可能会出现不同的错误:程序员编写的编码错误、错误输入导致的错误或其他无法预料的事情。发生错误时,Java通常会停止并生成错误消息。对此的技术术语是:Java将抛出异常(抛出错误)。
Java 异常
在执行 Java 代码时,可能会出现不同的错误:程序员编写的编码错误、错误输入导致的错误或其他无法预料的事情。
发生错误时,Java 通常会停止并生成错误消息。对此的技术术语是:Java 将抛出异常(抛出错误)。
Java try 和 catch
try
语句允许您定义一个代码块,以便在执行时对其进行错误测试。
如果 try 块中发生错误, catch
语句允许您定义要执行的代码块。
try
和 catch
关键字成对出现:
语法
try { // 要尝试的代码块 } catch(Exception e) { // 处理错误的代码块 }
考虑以下示例:
这将产生错误,因为 myNumbers[10] 不存在。
public class MyClass { public static void main(String[ ] args) { int[] myNumbers = {1, 2, 3}; System.out.println(myNumbers[10]); // error! } }
输出将是这样的:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at MyClass.main(MyClass.java:4)
点击 "运行实例" 按钮查看在线实例
如果发生错误,我们可以使用 try...catch
来捕获错误并执行一些代码来处理它:
实例
public class MyClass { public static void main(String[ ] args) { try { int[] myNumbers = {1, 2, 3}; System.out.println(myNumbers[10]); } catch (Exception e) { System.out.println("Something went wrong."); } } }
输出将是:
Something went wrong.
点击 "运行实例" 按钮查看在线实例
Finally
finally
语句允许您在 try...catch
之后执行代码,而不管结果如何:
实例
public class MyClass { public static void main(String[] args) { try { int[] myNumbers = {1, 2, 3}; System.out.println(myNumbers[10]); } catch (Exception e) { System.out.println("Something went wrong."); } finally { System.out.println("The 'try catch' is finished."); } } }
输出将是:
Something went wrong.
The 'try catch' is finished.
点击 "运行实例" 按钮查看在线实例
throw 关键字
throw
语句允许您创建自定义错误。
throw
语句与异常类型一起使用。 Java 中有许多异常类型可用: ArithmeticException
,
FileNotFoundException
, ArrayIndexOutOfBoundsException
, SecurityException
, etc:
实例
如果年龄低于 18 岁,则抛出异常(打印"访问被拒绝")。如果年龄为 18 岁或以上,请打印"访问权限":
public class MyClass { static void checkAge(int age) { if (age < 18) { throw new ArithmeticException("Access denied - You must be at least 18 years old."); } else { System.out.println("Access granted - You are old enough!"); } } public static void main(String[] args) { checkAge(15); // 将年龄设置为 15 岁(低于 18 岁......) } }
输出将是:
Exception in thread "main" java.lang.ArithmeticException: Access denied - You must be at least 18 years old.
at MyClass.checkAge(MyClass.java:4)
at MyClass.main(MyClass.java:12)
点击 "运行实例" 按钮查看在线实例
如果年龄为 20 岁,则不会出现异常: