常见的编译时异常和运行时异常

编译时异常:首先它的过程是在程序把他的.java的源文件编译成字节码文件也就是.class文件,出现的异常。

运行时异常:运行时异常表示虚拟机的通常操作中可能遇到的异常,它意味着程序存在着bug。

Exception分两类 : 
运行时异常,不需要强制处理  所有的RuntimeException的子类都是运行时异常
编译时异常,需要强制处理  在Exception范围内,除了运行时异常的类都是编译时异常

编译时异常和程序的上下文条件有着密切关系,即使程序设计无误也会由于使用问题而引发。
Java编译器要求方法必须声明抛出可能发生的编译时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

Exception:异常  主要是在程序运行期间发生的一些不正常事件中止了程序的运行,可以通过JAVA异常处理机制捕获异常并处理,使得程序正常运行下去。发生之后可以捕获并处理的。

常见的异常:

1、编译时异常:

IOException                            输入输出流异常 
FileNotFoundException          文件找不到的异常 
ClassNotFoundException       类找不到异常 
DataFormatException             数据格式化异常 
NoSuchFieldException           没有匹配的属性异常 
NoSuchMethodException       没有匹配的方法异常 
SQLException                         数据库操作异常 
TimeoutException                   执行超时异常

IOException:广泛的说,什么时候会有IOException ,比如你文件都不到的时候 ,你在做数据库操作的时候数据库底层出现问题 ,或者你系统IO出问题了 ,系统拿不到文件句柄 ,你说的读着读着突然被删了,你可以试试,书不定真可以 ,你可以看有多少IOExeption个子类,差不多就有多少种类型。

FileNotFoundException:注意,这里的找不到是在你的编译结果文件夹里面找不到,而不是在你的工程里面找不到,很多同学说自己工程里面有这个文件,为什么还要报这个异常?这个时候,你最好跑到你的编译文件放的文件夹下面,比如tomcat的webapps文件夹下面,找找你的工程对应的文件夹,看看那个里面有没有你的文件

ClassNotFoundException:属于编译时异常,是在classloader加载类的时候发现类不存在在类路径的时候报出的。

SQLException:比如SQL语句写错,访问的表不存在,连接数据库失败等。

2、运行时异常(RuntimeException):

ArrayIndexOutofBoundsException     数组越界异常 
ClassCastException                           类型转换异常 
NullPointerException                          空指针异常   
IllegalAccessException                      非法的参数异常 
InputMismatchException                    输入不匹配异常

发布了610 篇原创文章 · 获赞 285 · 访问量 112万+

猜你喜欢

转载自blog.csdn.net/AlbenXie/article/details/104676656