288/289异常概念&异常体系和异常分类
异常概念&异常体系
ava.Lang. Throwable:类是J0va语言中所有错误或异常的超类。Exception:编译期异常,进行编译(写代码)avo程序出现的问题Runtimeexception:运行期异常,jw程序运行过程中出现的问题昇常就相当于程序得了一个小毛病(感冒,发烧)把昇常处理掉,程序可以继续执行(吃点药,继续革命工作Error:错误错误就相当于程序得了一个无法治煎的毛病(非典,艾滋).必须修改源代码,程序才能继续执行
异常的概念:
概念:指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM非正常停止。异常本身是一个类,产生异常就是创建异常对象并抛出一个异常对象
异常,就是不正常的意思。在生活中:医生说.你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响
在程序中的意思就是︰
异常∶指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。
在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。 Java处理异常的方式是中断处理。
异常的体系:
异常机制其实是帮助我们找到程序中的问题,异常的根类是java.lang.Throwable,其下有两个子类
:java.lang.Error与java.lang . Exception,
平常所说的异常指java.lang.Exception 。
Throwable体系:
Error:严重错误Error,无法通过处理的错误,只能事先避免。
Exception:表示异常,异常产生后程序员可以通过代码的方式纠正,使程序继续运行,是必须要处理的。
java.lang.Throwable:类是Java语言中所有错误或异常的超类
Exception:编译期异常,进行编译(写代码)java程序出现的问题
RuntimeException:运行期异常, java程序运行过程中出现的问题
异常就相当于程序得了一个小毛病(感冒,发烧),把异常处理掉,程序可以继续执行(吃点药,继续工作)
Error:错误
错误就相当于得了一个无法治愈的毛病(非典,艾滋),必须修改源代码,程序才能继续执行。
异常分类
我们平常说的异常就是指Exception,因为这类异常一旦出现,我们就要对代码进行更正,修复程序。异常(Exception)的分类:根据在编译时期还是运行时期去检查异常?
编译时期异常:checked异常。在编译时期,就会检查,如果没有处理异常,则编译失败。(如日期格式化异常)。
运行时期异常:runtime异常。在运行时期,检查异常.在编译时期,运行异常不会编译器检测(不报错)。(如数学异常)
java.Lang. Throvable:类是Java语言中所有错误或异常的超类。
Exception:编译期异常,进行编译(写代码乃avo程序出现的问题
RuntimeException:运行期异常,jaa程序运行过程中出现的问题
异常就相当于程序得了一个小毛病(感冒,发烧),把异常处理掉,程序可以继续执行(吃点药,继续革命工作)
Error:错误
错误就相当于程序得了一个无法治煎的毛病(非典,艾滋).必须修改源代码,程序才能继续执行
public static void main(String[] args) {
// Exception:编译期异常,进行编译(写代码)java程序出现的问题
/* SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd" );//用来格式化日期
Date date = null;
try {
date = sdf.parse("1999-0909" );//把字符串格式的日期,解析为Date格式的日期
}catch (ParseException e) {
e.printStackTrace();
}
System.out.println(date);
*/
// RuntimeException:运行期异常,java程序运行过程中出现的问题
/*
int[] arr = {1,2,3};
System.out.println(arr[0] );
try {
//可能会出现异常的代码
System.out.println(arr[3]);
}catch(Exception e){
//异常的处理逻辑
System.out.println(e);
}
*/
// Error:错误
// outoiemoryErron: Java heap space
// 内存溢出的错误,创建的数组太大了,超出了给VIr分配的内存*/
// int[] arr = new int[1024*1024*1024];
// 必须修改代码,创建的数组小一点
int[]arr = new int[ 1024*1024];
System.out.println("后续代码");
可查异常
public static void main(String[] args) {
File f=new File("d:/l.txt");
System.out.println("试图打开文件");
try {
new FileInputStream(f);
System.out.println("成功打开");
} catch (FileNotFoundException e) {
System.out.println("文件不存在");
e.printStackTrace();
}
}
运行时异常
public static void main(String[] args) {
//任何除数不能为0:ArithmeticException
int result=5/0;
//下标越界异常:ArrayIndexOutOfBoundsException
int j[]=new int[5];
j[10]=10;
//空指针异常:NullPointerException
String str=null;
str.length();
}
错误Error
public static void main(String[] args) {
StringBuffer sb =new StringBuffer();
for (int i = 0; i < Integer.MAX_VALUE; i++) {
sb.append('a');
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现