java-异常20191119

异常的概念:程序运行出现的错误,对Java而言是一种异常。
异常也称例外,是在程序运行过程中发生的、会打断程序正常执行的事件,所以要对异常进行处理,这样才能保证程序可以正常运行。
在Java中,所有的异常都是以类的类型存在,除了内置的异常类之外,Java也可以自定义的异常类。

下面是几种常见的异常;
1、算术异常(ArithmeticException)。
2、没有给对象开辟内存空间时会出现空指针异常(NullPointerException)。
3、找不到文件异常(FileNotFoundException)。

异常发生时,2种异常处理方式:
1.如果没有编写相应的处理异常的程序代码,则Java的默认异常处理机制处理异常,Java会先抛出异常,并输出异常信息,接着便终止程序的运行:
即:不用try/catch块捕捉处理,也不抛出异常throws,当java发现错误后,由系统抛出异常并输出异常信息,然后停止运行程序
ps:感觉:方法直接抛出异常,不处理异常,也是由虚拟机处理
2.另一种是处理方式是自行编写的try-catch-finally块来捕捉处理异常,使程序便能顺利地运行到最后。


异常处理:是由try、catch-捕捉处理异常与finally三个关键字所组成的程序块。
a.当try块有异常发生时,try块中抛出异常后面的代码就不再执行,发生异常的语句代码会抛出一个异常类的实例化对象,之后此对象与catch语句中的类的类型进行匹配,如果匹配上就会在相应的catch中进行处理,程序便能顺利地运行到最后
b.如果抛出的异常没有被catch捕捉到或者不匹配,执行完finally块的语句后,还是会抛出异常,停止程序运行

 

异常可分为两大类:java.lang.Exception 类与 java.lang.Error 类。这两个类均继承 自 java.lang.Throwable 类。
Error类:专门用来处理严重影响程序运行的错误,通常程序设计者不会设计程序代码去捕捉这种错误,因为即使捕捉到它,也无法给予适当的处理,如 JAVA 虚拟机 出错就属于一种 Error
Exception 类:包含了一般性的异常,这些异常通常在捕捉到之后 便可做妥善的处理,以确保程序继续运行


异常抛出 及处理----也是代码中常见的:
1.程序中抛出异常---throw:
throw 异常类实例对象如:
try{根据判断抛出异常throw new ArithmeticException("一个算术异常")}
catch(){捕获异常并处理}

2.指定方法抛出异常throws:
a.如果方法内的程序代码可能会发生异常,且方法内又没有使用任何的代码块来捕捉这些异常时,则必须在声明方法时一并指明所有可能发生的异常,以便让调用此方法的程序得以做好准备来捕捉异常。
也就是说,如果方法会throws抛出异常,但方法内部不处理,由调用此方法的程序代码内的try-catch-finally块处理此异常或由调用的方法继续往上抛出异常。
b.java会要求调用可能会抛出异常方法的程序必须处理异常,否则程序编写报错
c.当程序入口throws出异常是,则由JVM【Java虚拟机】来处理


ps:自定义异常:https://blog.csdn.net/peanutwzk/article/details/78934392
1.java中出现异常只抛出不处理是可以的,但是这不是推荐的做法,如果这个异常给系统处理【最终将由虚拟机处理,程序运行时的异常都将由默认的虚拟机中的函数进行处理】,第一可能会终止程序运行,第二软件的健壮性不能保证。

扫描二维码关注公众号,回复: 8340292 查看本文章

猜你喜欢

转载自www.cnblogs.com/wbsbxh/p/12110904.html