Java的异常机制分析及处理办法
众所周知,java中的异常(Exception)机制很重要,程序难免会出错,异常机制可以捕获程序中的错误,用来提高程序的稳定性和健壮性。
java中的异常分为Checked Exception(非Runtime Exception)和UnChecked Exception(Runtime Exception),所有的异常类都直接或间接的继承Exception。Exception又直接继承自Throwable类,Throwable类的直接子类还有error类,不过当出现error时,程序会直接退出执行,程序处理不了error,所以这里重点讨论Exception类。RuntimeException类继承自Exception,运行时异常都直接或间接继承自RuntimeException类。其他继承Exception类的是非运行时异常,在编译期间可发现。运行时异常是在运行时才会出现的,如算术除零,在编译期间是可以通过的,但在运行时会抛出运行时异常,除数不能为零。
java的异常处理有两种
1、捕获异常
结构如下
try{//执行可能产生异常的代码}catch(RuntimeException e){//对捕获的异常进行处理}catch(Exception e)//可定义捕获多个异常{//对捕获的异常进行处理}finally{//捕获完后要执行的代码,可有可无,如果有的话就一定会执行,不管有没有异常}try-catch-finally
如果异常被catch捕获后,后面还有catch语句就不会执行了,但如果有finally的话就一定会执行finally块里面的语句。
2、声明抛出异常
在调用会产生异常的方法所在的方法声明处声明throws Exception,此方法将不会对该类异常进行处理,而是由该方法的调用者处理。
3、人为的'抛出异常
直接在方法内抛出异常,throw exception;
对于运行时异常推荐不对其进行处理。
自定义异常是定义了一个继承自Exception类的子类,一般不会定义继承自RuntimeException类,在try块中存在return语句时,如果有finally块语句,那么也要先执行完finally块的语句之后再返回,但如果try块中存在(0)语句,就不会执行finally块的语句,因为(0)会终止当前运行的java虚拟机,程序会在虚拟机终止前结束执行。
class myException extends Exception{ public myException(String str) { super(str); }}myException
异常在文件处理,输入输出流的应用场合等都会用上。
常见的异常类型有:
1、PointerException:空指针异常,出现该异常的原因就是某个引用为null,但程序中又调用了该引用的某个方法。
2、sNotFoundException :找不到指定的类,可能是类未定义。
3、hmeticException:算术异常,如除数为零。
4、FileNotFoundException:在文件处理中,找不到指定的文件。
5、IOException:输入输出流异常
6、SQLException:sql异常,执行sql语句出现错误。
此外还有许多类型的异常,在以后的编程中会遇到。相信本文所述对大家的Java程序设计有一定的借鉴价值。
-
新手如何学习Java
Java作为一门高级编程语言在信息科技时代有着广泛的应用。新手如何学习Java呢?下面小编来给大家介绍Java的学习方法,希望对大家有帮助!1理解Java思想Java是一门面向对象编程语言。向对象编程是Java最核心的思想,这也是区分和C等其他编程语言的一个显著特征。掌握...
-
讲述java读取properties文件的方法
讲述java读取properties文件的方法1.不在项目中读取:Propertiesproperties=newProperties();BufferedReaderread=newBufferedReader(newInputStreamReader(newFileInputStream("文件的.路径"),"utf-8"));(read);propertiesroperty("那个文件的key")2.在项目中读...
-
Java测试题及答案
Java测试题及答案学习是把知识能力思维方法等转化为你的私有产权的重要手段,是公有转私的重要途径。以下是本站小编整理的Java测试题及答案,欢迎学习!试题1指出下面语句没有编译错误的是()。A.longn=999999999999;n=999999999999L;C.longn=999999999999L;D.doubl...
-
java的String=a; a==null和a.equals(null)这两个判断有什么区别
1、String的==与equal()在对字符串的相等判断,==判断的是地址是否相同,equal()判断的是字符值是否相同。大多数时候==跟equal()的结果都是相同的。这是因为String对象是不变模式的,如果你不是明确地new一个String对象,Java对于String对象的保存默认的是会把新生成...