1.异常捕捉
public class Demo01 {
public static void main(String[] args) {
int divisor = 10;
int dividend = 0;
//System.out.println(divisor / dividend);//ArithmeticException 算术异常
try {
System.out.println(divisor / dividend);//ArithmeticException 算术异常
} catch (Exception e) {
e.printStackTrace();
System.out.println("捕获到一个异常");
}finally {
System.out.println("不管如何都会执行这里的代码");
}
System.out.println("哈哈哈");
}
}
2
public class Demo02 {
public static void main(String[] args) {
int[] a = new int[2];
Scanner scanner = new Scanner(System.in);
try{
int i = scanner.nextInt();
int j = scanner.nextInt();
a[0] = j;
a[2] = i;
System.out.println(a[0] / a[2]);
//Array Index OutOf Bounds Exception 数组 索引 超出 边界 异常
//Input Mismatch Exception 输入 不匹配 异常
//Arithmetic Exception 数学数字 异常
}catch (ArrayIndexOutOfBoundsException e){
System.out.println("数组越界异常");
}catch (InputMismatchException e){
System.out.println("数据格式不正常异常");
}catch (ArithmeticException e){
System.out.println("算术异常");
}
}
}
3.声明异常
public class Demo03 {
public static void main(String[] args) {//throws Exception,继续向上声明异常,不处理
try {
serSex("双性人");
}catch (Exception e){//调用者处理异常
e.printStackTrace();
System.out.println("非男非女");
}
//serSex("afwarf");
}
public static void serSex(String sex) throws Exception{//声明异常
if (!(sex.equals("男") || sex.equals("女")) ){
throw new Exception("处理不了的异常,扔出去");//抛出异常
}
}
}
4.向上声明不处理
public class SexException extends Exception{
public SexException() {
}
public SexException(String message) {
System.out.println(message);
System.out.println("我是自定义的异常,知道是非男非女,但是我也没办法处理");
System.out.println("....");
}
}
public class Demo04 {
public static void main(String[] args) throws Exception{//继续向上声明异常,不处理
try {
serSex("双性人");
}catch (Exception e){//调用者处理异常
System.out.println("调用者说处理过了");
}
}
public static void serSex(String sex) throws Exception{//声明异常
if (!(sex.equals("男") || sex.equals("女")) ){
throw new SexException("发现一个不对劲的");
}
}
}