捕获和抛出异常
- 异常处理的五个关键字:try catch finally throw throws
package opp.Demo11;
public class test {
public static void main(String[] args) {
int a=1;
int b=0;
System.out.println(a/b);
}
}
F:\Java\jdk-20\bin\java.exe “-javaagent:E:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.3.2\lib\idea_rt.jar=1847:E:\program files\JetBrains\IntelliJ IDEA Community Edition 2022.3.2\bin” -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath E:\study\study\out\production\study opp.Demo11.test
Exception in thread “main” java.lang.ArithmeticException: / by zero
at opp.Demo11.test.main(test.java:7)
Process finished with exit code 1
package com.oop.Demo11;
public class Test {
public static void main(String[] args) {
int a = 10;
int b = 0;
//捕获多个异常 会从小到大
//Ctrl+Alt+T 调出try代码
try {//try 监控区域
if(a==0){//主动抛出异常 throw throws
throw new ArithmeticException();//主动抛出异常 方法异常时常用
}
new Test().a();
System.out.println(a / b);
} catch (Error e) {//catch()想要捕获的参数类型 捕获异常
System.out.println("Error");
}catch(Exception e) {
System.out.println("Exception");
}catch(Throwable t) {
System.out.println("Throwable");
} finally {//处理善后工作
System.out.println("finally");
}//finally 可以不要 但try catch一定要
}
public void a(){
b();
}
public void b(){
a();
}
}
package com.oop.Demo11;
public class Test1 {
public static void main(String[] args) {
try {
new Test1().test(1,0);
}catch(ArithmeticException e){
e.printStackTrace();
}
}
public void test(int a,int b) throws ArithmeticException{
if(a==b){
throw new ArithmeticException();
}
}
}