Java中的异常 Exception: 代表Java程序在运行过程中出现了不可预期的错,然后影响了代码的正常的执行,可以使用Java中的异常的处理机制来出来一下代码,让代码能够正常的执行下去。
异常的捕捉:
在程序运行过程中,难免会出现异常,这个时候Java中捕捉异常的语法格式进行异常的处理
try {
可能出现异常代码
} catch(异常对象) {
}
执行流程: 如果try里面的代码没有异常,跳过catch 然后接着往下执行。
如果trye里面有异常,就执行catch后面大括号的代码
public class Demo1 {
public static void main(String[] args) {
test(3, 0);
}
public static void test(int a, int b) {
// Exception in thread "main" java.lang.ArithmeticException: / by zero
// at com.qf.d_exception.Demo1.test(Demo1.java:8)
// at com.qf.d_exception.Demo1.main(Demo1.java:5)
int c = 0;
try {
c = a / b;
}catch (Exception e) {//catch 抓 捕捉
//Exception e = new ArithmeticException(); 多态
//jvm会抛出一个异常的实例(对象) 将对象赋值给ArithmeticException e = new ArithmeticException()
System.out.println("代码有异常");
System.out.println("除数不能为0");
}
System.out.println(c);
System.out.println("你好");
}
}
异常的抛出:
代码出现异常的地方进行抛出异常,特别是关于编译时异常的时候,为了保证咱们代码编译通过
可以使用异常抛出的语法格式来进行抛出异常
throws : 关键字 名词 告知调用者 此处有异常
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class Demo5 {
public static void main(String[] args) throws Exception{
//在当前出现异常代码所在的方法的后面 书写关键字 throws 异常类
Thread.sleep(1000);
FileInputStream fis = new FileInputStream(new File("c:/aaa/1.txt"));
}
}
throw 关键字
抛的动作, 可以抛出来一个异常对象。 自己可以造错!!!
import java.util.Scanner;
public class Demo6 {
public static void main(String[] args) throws Exception{
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
String username = scanner.next();
if (!username.equals( "狗蛋")) {
//throw 是抛的动作 后面跟的是一个异常的对象
//new Exception("用户名不存在"); 编译时异常
throw new Exception("用户名不存在");//造错!!!
}
System.out.println("请输入密码:");
String password = scanner.next();
if (!password.equals("123")) {
throw new Exception("密码错误");
}
System.out.println("登陆成功!!!");
}
}