异常及其解决
来源:互联网 发布:网络侦探 2周目 彩蛋 编辑:程序博客网 时间:2024/06/05 04:12
异常
1.异常的分类
2.Error和Exception
Error 程序无法处理,这些异常发生时Java虚拟机一般会选择停止
Exception 是程序可以处理的,分为运行时异常和非运行时异常
3.运行时异常和非运行时异常
运行时异常
都是RuntimeException类及其子类异常,一般为逻辑错误;程序可以选择捕获处理,也可以不处理。非运行时异常
如IOException、SQLException,不处理就不能编译通过
4.异常处理
总的来说分为两类,捕获和抛出
try catch finally属于捕获组
throw throws属于抛出组
·try catch finally捕获组
try…catch…finally、try…catch、try…finally三种结构
try 里是要运行的代码块
try语句块中代码受异常监控,其中代码发生异常时,会抛出异常对象,这时catch 捕获try代码块中的异常并与自己的异常类型匹配,若匹配再执行catch,
finally 不管是否try语句块是否发生异常,都会执行
·throw throws抛出组
throw 用于方法体内部,用来抛出一个Throwable类型的异常。
throws 用于方法体外部的方法声明部分,用来声明方法可能会抛出某些异常
public static void test3() throws Exception{ throw new Exception(“方法test3中的Exception”);}
所谓处理
一般来说,说调用这个异常的方法,谁要进行处理,不想处理就层层上抛,知道在main里结束前要进行处理,如果方法层层上抛,jvm会打印异常信息和堆栈信息。
5.常见的异常,原因及解决方案
1、java.lang.NullPointerException(空指针异常)
原因:调用了未经初始化的对象或者是不存在的对象
方案debug一下查看是不是某些地方传了一个空值
2、 java.lang.ClassNotFoundException
原因:指定的类不存在,
方案:这里主要考虑一下类的名称和路径是否正确即可
3、java.lang.IndexOutOfBoundsException
原因:数组下标越界异常
方案:检查一下,看自己调用的下标是不是超出了数组的范围
4、java.lang.IllegalArgumentException
原因:方法的参数错误
方案:检查一下方法调用中的参数传递是不是出现了错误
5、java.lang.ClassCastException
数据类型转换异常,当试图将对某个对象强制执行向下转型,但该对象又不可转换又不可转换为其子类的实例时将引发该异常
6、 java.lang.FileNotFoundException
原因:文件未找到异常
方案:先判断一下当前文件是否存在,在填写文件的路径时一定要具体到文件
7、java.lang.NoSuchMethodException
方法不存在异常,当程序试图通过反射来创建对象,访问(修改或读取)某个方法,但是该方法不存在就会引发异常
8、 java.lang.NoSuchFiledException
方法不存在异常,当程序试图通过反射来创建对象,访问(修改或读取)某个filed,但是该filed不存在就会引发异常
- 异常出现及其解决
- 异常及其解决
- 异常org.hibernate.NonUniqueObjectException及其解决
- android ANR异常及其解决方式
- Android ANR异常及其解决方式
- android ANR异常及其解决方式 .
- 转:Android ANR异常及其解决方式
- java异常及其处理
- 自定义异常及其处理
- 异常及其解决办法
- JAVA异常及其处理
- qml常见问题及其解决
- Keil问题及其解决
- 线程死锁及其解决
- 程序冲突及其解决
- 脸盲,及其解决
- Hibernate一些异常及其解决办法
- Java 异常处理及其应用
- python运算题
- poj2386Lake Counting之dfs
- 1037. 在霍格沃茨找零钱(20)
- JDBC
- PHP单例模式
- 异常及其解决
- 计算机网络第3章 数据链路层
- 自产生程序
- 致给迷茫与失落时的的自己
- linux学习之rpm命令
- 创建学生成绩的间接寻址
- 网站优化之Memcached
- Mac环境下安装PHP及使用xdebug调试
- 1038. 统计同成绩学生(20)