当前位置: 首页 > news >正文

java中异常详解以及运行时异常runtime exception

异常体系

在这里插入图片描述
我们在系统中有一个基类时throwable,异常包。
然后Error类继承之,Error类描述的是java运行时内部错误或者导致资源耗尽的错误,一旦这种错误出现,不是抛出异常,会直接告知用户并安全终止。比如栈溢出
Exception继承throwable后,又被IOEception和RunningException继承。
IOException表示:书写的程序本身是没有问题的,但是由于出现IO问题导致的异常。比如打开一个不存在的文件。
RunTimeException是运行时异常;是由于程序本身错误导致的。
——————————————————————————————————
除了这种关系,异常还分为受查异常和非受查异常。
非受查异常:就是继承于Error和RunTimeException类的所有异常,不强制用户处理,但是运行会报错终止。
受查异常:Exception以及IOException的子类,会强制用户进行处理。

常见的运行时异常,以及导致原因 --5个

1在数组应用中
因为数组在java中属于引用数据类型所以,必须在使用前初始化,否则编译时不会出错,运行时会爆出异常,NullPointerEXception --空指向异常
在这里插入图片描述
**(1)**在字符串比较中,如果一个空对象"."调用对应类中成员则会运行时异常nullPointException

String str1 =null;
str1.equals("hello");

2在数组访问中
当访问的数组下标越界时会报一个运行时异常,ArrayIndexOutOfBoundsException–数组访问越界异常
在这里插入图片描述
3在多态中
当父类引用需要调用子类填充方法时,需要向下转型。但是向下转型前需要先向上转型,否则会发生运行时异常,ClassCastException–类型转换异常
我们可以通过: 引用名 instanceof 类名 的返回值来判断该引用是否表示该类实例,从而判断是否发生了向上转型。

在这里插入图片描述

4在包装类中
如果我们利用给基本数值类型的对应的包装类中穿的类型不同则会发生运行时异常NumberFromatException
在这里插入图片描述

5当数学运算中比如10/0,除0操作就会引用数学运算异常。ArithmeticException
在这里插入图片描述

异常处理格式

语法:

try{
//可能出现异常的语句
}catch(异常类 异常对象){
//出现异常后进入catch,这里是解决方案
}
finally{
//异常出口,这里无论是否发生异常都会执行该finally中的代码,即使try或者catch中出现return,依然会执行finally
}

以上是最全的。但是我们在书写过程中可以有选择的搭配try和catch或者finally。

throw throws用法

throws用在方法上,表示此方法中可能发生异常但是内部不处理,将异常抛给调用方,返回后处理。

throw 用在方法中,用来用用户自行产生异常类对象。
语法:throw new Exception("对该方法描述");
举个例子。
在这里插入图片描述

断言

assert 布尔表达式 :“false的藐视”;
eg:assert num != 0 :“错误num不能为0”;
当断言中的布尔表达式返回false时,会抛出异常。
但是断言需要手动开启。运行时 java -ea //开启断言

http://www.xdnf.cn/news/826849.html

相关文章:

  • mySQL常见命令
  • Nature综述:肠道菌群如何划分肠型
  • 基于Protege的知识建模实战
  • 树莓派笔记5:自制小车(简单避障)
  • SQL Server 2012 下载和安装详细教程
  • 线程池之ScheduledThreadPoolExecutor详解
  • System.currentTimeMillis()与SystemClock.uptimeMillis()
  • JavaBean技术
  • Robots协议(爬虫协议、机器人协议)
  • Linux常用命令详解
  • solver及其配置参数详解
  • 叔丁醇钾是什么?叔丁醇钾的分子量和结构式
  • 六种基本网络拓扑结构详解
  • 【常用】Ultra Edit常用设置及快捷键
  • 【Python】全网最详细的Python入门基础教程(非常详细,整理而来)
  • 数据库设计规范
  • 【转载】【5G学习】小区搜索——SSB
  • 数据结构-二叉搜索树/二叉排序树/二叉查找树
  • arm平台下使用bl和ldr跳转应当注意的地方(arm-linux-gcc环境)
  • WOL(Wake On LAN - 局域网唤醒)外网唤醒 配置教程 远程开机
  • Statement和PreparedStatement的区别与联系
  • pcre简介
  • 【网络安全】nmap深度入门讲解
  • 请问一下java在线编程的网站有哪一些?
  • JDK配置环境变量【图文详解】
  • 微服务网关API Geteway
  • 【Oracle database】 Oracle数据库分区表基础
  • Apriori算法详解
  • linux下logcat命令,Android logcat 命令以及 Log机制
  • 好玩的100个网站收藏