异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。
捕获异常
使用 try 和 catch 关键字可以捕获异常。try/catch 代码块放在异常可能发生的地方。
try/catch代码块中的代码称为保护代码,使用 try/catch 的语法如下:
try{ // 程序代码 }catch(ExceptionName e1){//ExceptionName为异常名 //Catch 块 }
Catch 语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try 后面的 catch 块就会被检查。
如果发生的异常包含在 catch 块中,异常会被传递到该 catch 块,这和传递一个参数到方法是一样。
//为捕捉异常时 //需求:数字一个数字输出该数字 import java.util.Scanner; public class Demo01 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入一个数字:"); int i = sc.nextInt(); System.out.println("该数字为:"+i); } }
正常输入:
请输入一个数字:12
该数字为:12
当输入其他非数字时:
请输入一个数字:java
Exception in thread “main” java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
test/test.Demo01.main(Demo01.java:9)
//捕捉异常 import java.util.Scanner; public class Demo01 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入一个数字:"); try {//捕捉输入时的异常 int i = sc.nextInt(); System.out.println("该数字为:"+i); }catch(Exception e){ System.out.println("输入异常!"); } } }
正常输入:
请输入一个数字:12
该数字为:12
当输入其他非数字时:
请输入一个数字:java
输入异常!