抛出异常和捕获异常
抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给JRE。
捕获异常:JRE得到该异常后,寻找相应的代码来处理该异常。JRE在方法的调用栈中查找,从生成异常的方法开始回溯,直到找到相应的异常处理代码为止。
什么是Error
Error是程序无法处理的错误,表示运行应用程序中较严重问题。
Error表明系统JVM已经处于不可恢复的崩溃状态中。我们不需要管它。
Error与Exception的区别
Exception是发生了超乎意料的事情。
而Error表示发生了不可恢复的崩溃状态
Exception是什么:
Exception是程序本身能够处理的异常,它是所有异常类的子类
1.空指针异常(NullPointerException)
(当程序访问一个空对象的成员变量或方法,或者访问一个空数组的成员时会发生空指针异常(NullPointerException)
2.数组下标越界异常(ArrayIndexOutOfBoundsException)
(当程序访问一个数组的某个元素时,如果这个元素的索引超出了0~数组长度-1这个范围,则会出现数组下标越界异常)
3.类型转换异常(ClassCastException)
(在引用数据类型转换时,有可能发生类型转换异常(ClassCastException)
4. 算术异常(ArithmeticException)
(试图除以0)
5.NumberFormatException异常
(在使用包装类将字符串转换成基本数据类型时,如果字符串的格式不正确,则会出现数字格式异常)
RuntimeException 运行时异常
(这类异常通常是由编程错误导致的)
CheckedException 已检查异常
(所有不是RuntimeException的异常,统称为Checked Exception)
package com.zxh.abnormal;
i
题目;
判断一个整数是否再0-100之间,超出范围则抛出自定义异常
import java.util.Scanner;
/**
* @program: javase
* @description: 异常练习题
* @Author: 小白白
* @create: 2019/12/29 - 22:17
**/
public class Abnorma_Demol {
public static int Abnorma(int a) throws Exception{
if( a >100 || a < 0)
throw new Exception();
return a;
}
public static void main(String[] args){
try{
System.out.println("请输入一个整数:");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
System.out.println("输出结果正确,正确得值为:" + Abnorma(a));
}catch(Exception e){
System.out.println("输出结果错误,不符合规范---exception...");
}
}
}