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

java常见的异常

异常分类

Throwable

是java异常的顶级类,所有异常都继承于这个类。
Error,Exception是异常类的两个大分类。

Error

Error是非程序异常,即程序不能捕获的异常,一般是编译或者系统性的错误,如OutOfMemorry内存溢出异常等。

Exception

Exception是程序异常类,由程序内部产生。Exception
又分为运行时异常,非运行时异常类。

运行时异常

运行时异常的特点是java编译器不会检查它,也就是说,当程序中可能出现这类异常时,会编译通过,但是在运行时会出现错误。
如NullPointException,ArrayIndexoutOfBuoundsException等。

非运行时异常

程序必须进行处理的异常,编译不通过,必须捕获或者抛出。如IOException,ClassNotFoundException等。

java常见的异常有哪些?

1、NullPointerException

空指针异常,操作一个 null 对象的方法或属性时会抛出这个异常。

   private static void NullPointer() {String s = null;System.out.println(s.equals("123"));}

在这里插入图片描述

2、OutofOutofMemoryError

内存出现异常的一种异常,这不是程序能控制的,是指要分配的对象的内存超出了当前最大的堆内存,需要调整堆内存大小(-Xmx)以及优化程序。

3、IOException

IO,即:input, output,我们在读写磁盘文件、网络内容的时候经常会生的一种异常,这种异常是受检查异常,需要进行手工捕获。
如文件读写会抛出 IOException:

public int read() throws IOException
public void write(int b) throws IOException

4、FileNotFoundException

文件找不到异常,如果文件不存在就会抛出这种异常。
FileNotFoundException 其实是 IOException 的子类,同样是受检查异常,需要进行手工捕获。
如定义输入输出文件流,文件不存在会报错:

public FileInputStream(File file) throws FileNotFoundException
public FileOutputStream(File file) throws FileNotFoundException

5、ClassNotFoundException

类找不到异常,Java开发中经常遇到,是不是很绝望?这是在加载类的时候抛出来的,即在类路径下不能加载指定的类。它是受检查异常,需要进行手工捕获。

看一个示例:

public static Class getExistingClass(ClassLoader classLoader, String className) {try{return (Class) Class.forName(className, true, classLoader);} catch( ClassNotFoundException e) {return null;}
}

6、ClassCastException

类转换异常,将一个不是该类的实例转换成这个类就会抛出这个异常。
这是运行时异常,不需要手工捕获。

如将一个数字强制转换成字符串就会报这个异常:

Object x = new Integer(0);
System.out.println((String)x);

在这里插入图片描述

7、IndexOutOfBoundsException

索引越界异常,当操作一个字符串或者数组的时候经常遇到的异常。它是运行时异常,不需要手工捕获。

例:一个ArrayList数组中没有元素,而你想获取第一个元素,运行是就会报此类型的错误。

public class test{public static void main(args[] ){List list = new ArrayList<>();System.out.println(list.get(0));}
}

8、ArithmeticException

算术异常,发生在数字的算术运算时的异常,如一个数字除以 0 就会报这个错。

  double n = 3 / 0;

在这里插入图片描述

9、NumberFormatException

数字格式异常。当试图将一个String 转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常。
例如:

 private static void NumberFormat(){String a= "a";int b = Integer.valueOf(a);System.out.println(b);}

在这里插入图片描述

10、StringIndexOutOfBoundsException

字符串索引越界异常。当使用索引值访问某个字符串中的字符,而该索引值小于0或大于等于序列大小时,抛出该异常.

 //字符串索引越界异常private static  void  StringIndexOutOfBounds(){String a = "a";System.out.println(a.substring(3,4));}

在这里插入图片描述

http://www.lryc.cn/news/10635.html

相关文章:

  • 从0开始学python -33
  • ModuleNotFoundError: No module named ‘glfw‘ 解决方案
  • RadZen运行和部署,生成业务web应用程序
  • 分享7个比B站更刺激的老司机网站,别轻易点开
  • 浅析:如何在Vue3+Vite中使用JSX
  • 开发小程序需要什么技术?
  • 7个营销人员常见的社交媒体问题以及解决方法
  • BFC 是什么
  • 07 react+echart+大屏
  • Linux/Ubuntu安装部署Odoo15仓管系统,只需不到十步---史上最成功
  • Python奇异值分解
  • AWS攻略——子网
  • java面试 - mq
  • PTP GPTP芯片资料翻译88E6352
  • 用Python实现一个电影订票系统
  • 什么是瞪铃企业
  • 【深度学习】多分类问题和多标签分类问题
  • 大学生开学买什么,返校必备数码好物推荐
  • Unreal Engine06:Actor的实现
  • 2023美国大学生数学建模竞赛C题思路解析(含代码+数据可视化)
  • aws codebuild 自定义构建环境和本地构建
  • 3年功能3年自动化,从8k到23k的学习过程
  • leaflet: 数据聚合,显示当前bounds区域中的点的名称列表(078)
  • XXL-JOB分布式任务调度框架(一)-基础入门
  • 基于CentOS 7 搭建Redis 7集群
  • Lesson5.3---Python 之 NumPy 统计函数、数据类型和文件操作
  • Puppeteer 爬虫学习
  • 如何在Power Virtual Agents中实现身份验证
  • 金三银四必备软件测试必问面试题
  • Java反序列化漏洞——CommonsCollections6链分析