常见的异常

常见异常

java程序中几种常见的异常以及出现此异常的原因

1.java.lang.NullpointerException(空指针异常)
java面向对象编程,如果对象是个空的 null ,这个对象就无法正常使用,一旦使用改对象操作数据, 就会出现空指针异常;

解决方式:将某一步把对象赋值为空操作修改;
.

2、 java.lang.ClassNotFoundException(指定的类不存在)
分成两种: 1.运行期的异常 一般是没有导入jar包的情况下;导入响应jar包 2.编译器的异常 一般用于加载类的情况下,加载数据库的相关类; 使用反射进行操作类;使用try…catch 进行处理

.

4、java.lang.IndexOutOfBoundsException(数组下标越界异常)
遍历数组时,下标的获取不规范;或者时,从前端获取的数组数据,个数不一致; 修改数组的下标获取方式;修改数组的个数数据;
.

5、java.lang.IllegalArgumentException(方法的参数错误)
例如g.setColor(int red,int green,int blue)这个方法中的三个值,如果有超过255的会出现 这个异常,如果程序中存在这个异常,就要去检查一下方法调用中的参数传递或参数值是不是有错 RGB(0255,0255,0~255)

6、java.lang.IllegalAccessException(没有访问权限)
当程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。如果程序中用了 Package的情况下 有可能出现这个异常 修改权限修饰符,或者将类的位置放在同一包下;

7、java.lang.ArithmeticException(数学运算异常)
当数学运算中出现了除以零这样的运算就会出这样的异常。 修改数据方式;

8、java.lang.ClassCastException(数据类型转换异常)
当试图将对某个对象强制执行向下转换,但该对象又不可转换或又不可转换为其子类的实例时将出现该异 常 错误的语法,需要修改数据;

9、 java.lang.FileNotFoundException(文件未找到异常)
主要IO引起 进行try catch处理

10、java.lang.ArrayStoreException(数组存储异常)
当试图将类型为不兼容类型的对象存入一个Object[]数组时将引发异常 修改存入的数据内容;

11、java.lang.NoSuchMethodException(方法不存在异常)
当程序试图通过反射来创建对象,访问(修改或读取)某个方法,但是该方法不存在就会引发异常。

12、 java.lang.EOFException(文件已结束异常)
当程序在输入的过程中遇到文件或流的结尾时,引发异常。因此该异常用于检查是否达到文件或流的结尾

13、java.lang.InstantiationException(实例化异常)
当试图通过Class的newInstance()方法创建某个类的实例,但程序无法通过该构造器来创建该对象时 引发。Class对象表示一个抽象类,接口,数组类,基本类型 。该Class表示的类没有对应的构造器。 需要修改当前类,给出相应的构造方法

14、java.lang.InterruptedException(被中止异常)
当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法 终止该线程时抛出该异常。

15、java.lang.CloneNotSupportedException (不支持克隆异常)
当没有实现Cloneable接口或者不支持克隆方法时,调用其clone()方法则抛出该异常

16、java.lang.OutOfMemoryException (内存不足错误)
内存溢出 当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误

17、java.lang.NoClassDefFoundException (未找到类定义错误)
当Java虚拟机或者类装载器试图实例化某个类,而找不到该类的定义时抛出该错误

异常的处理

1、try…catch… 管这个异常,对这个异常进行处理
2、throws 抛出异常,不管这个异常;谁调用这个方法,谁管;都不管,听天由命,由java jvm自己 操作;

在web程序中,如果使用try…catch… 当程序出现异常时,还可以通过另一种方式继续跑,程序不 会停止; 而如果使用了throws,一旦出现异常,程序就会报错500,表示当前此功能出问题; 在设计程序时,如果当前功能是比较重要的,必须往下执行,此时需要使用try…catch… 而如果此功能是一个单独的功能,就可以直接抛出异常;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值