欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > Java 07异常

Java 07异常

2025/5/21 10:29:09 来源:https://blog.csdn.net/asom12/article/details/148099838  浏览:    关键词:Java 07异常

异常

指的是程序在编译和执行的过程中,出现的非正常的情况;
当然语法错误并不属于错误

异常体系

最大的Throwable;
分为两个:Error Exception

Error

严重级别问题
常见的
堆内存溢出
栈内存溢出

Exception

分为两个子类
RuntimeException 
运行时异常
除了RuntimeException外的子类 
编译时异常

在这里插入图片描述

例如,我现在这里将日期进行实例化,但是date进行实例化的时候及其有可能出错,所以需要将其抛出
所以需要提前将异常进行处理

在这里插入图片描述

异常的默认处理流程

向上抛出
package com.ithemia;public class yichang {public static void main(String[] args) {System.out.println("开始");methon();System.out.println("结束");}private static void methon() {System.out.println(10/0);}}
强制终止!!!!
现在,我调用了一个methon的方法,出现了除以0的问题,这个时候就会创建一个aRITHMETIC类似的*异常对象*,向上一级抛出,上一级为main,main继续上上一级抛出,也就是jvm即java虚拟机,java虚拟机将异常展示在你的面前

在这里插入图片描述

try…catch

好处:异常对象可以被捕获,后续的代码可以继续执行
格式:
try{可能出现异常的代码
}
catch(异常名称 对象名){}
执行流程:
1.执行try中的代码,看是否有异常对象产生
2.没有:catch就不会捕获,后续代码继续执行
3.有:catch捕获异常对象,执行catch{}中的处理方案,方便后续代码执行

在这里插入图片描述

多个异常,就可以写多个catch,最先执行的异常会被执行
也可以之间抓一个大的catch(Exception e)
实际上就是多态 Exception e=new ArithmeticException();
但是不推荐,因为太过于笼统了如果要捕获多个异常,最大的异常一定要放到最后ctrl+alt+t选中这一行,被包裹

throws

抛出异常
Date date=sdf.parse("fs00");
让方法throws ParseException();
但仅仅是声明异常,会将错误抛给上一级,但实际上并没有进行处理!!!

选择

需要将问题暴露出来,用throws
不需要用try catch

在这里插入图片描述

也可以写e.getMessage();
获得异常对象的你自己创建的那个问题的注释
运行时异常在子类中是不用进行抛出的

throw

用来抛出对象的

自定义异常

自定义编译时异常,继承Exception
运行时异常,继承RuntimeException
实际上就是创建一个类,去继承我需要的那个类,在编译或者运行的时候,实际上抛出的就是我自己写的那个类,那么就可以实现我自己写的异常去进行抛出

异常的细节

String getMessage();返回你写的错误的问题
如果是自定义的,返回的实际上也就是你的自己写的构造函数的错误的答案pribtStackTrace();
展示遗产的全部的异常的信息,第几行,什么类型的错误等

继承关系中的异常的处理

子类重写父类的方法的时候,不可以抛出父类没有的异常,或者比父类更大的异常,
你爹都没有,你为什么能有?=================================err

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词