异常
异常指的是运行期出现的错误,也就是当程序开始执行之后执行期出现的错误 1检查性异常:最具表明的检查性异常是用户错误或问题引发的异常,这是程序员没法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。 2运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常能够在编译时被忽略。 3错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中一般被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。java
空指针异常 NullPointerException
数组下标越界异常 ArrayIndexOutOfBoundsExecption 类型转换异常 ClassCastException
算数异常 ArithmeticException程序员
异常方法 下面的列表是 Throwable 类的主要方法:数据库
检查异常: 文件异常 IOException SQL异常SQLException 抛出异常:java程序执行过程当中发生异常事件,能够生成一个异常类,该异常类封装了异常事件的信息并将提交给java运行时系统,系统默认直接打印出来。 捕获异常:java运行时系统收到异常对象时,会寻找能处理这异常的代码并把当前异常对象交于处理,这一过程称为捕获异常。数组
try-catch 以及 try-catch-finally
Try{ //一些会抛出异常的方法 }catch(Exception e){ //处理该异常的代码块 从子类到父类 }catch(Exception2 e){ }finally { //最终将要执行的代码 } finally 关键字用来建立在 try 代码块后面执行的代码块。 不管是否发生异常,finally 代码块中的代码总会被执行。spa
throw throws 若是一个方法没有捕获一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。 也可使用 throw 关键字抛出一个异常,不管它是新实例化的仍是刚捕获到的。 声明将要抛出的任何异常(声明) Public void 方法名(参数列表) throws 异常类别{ //调用抛出异常的方法或者: throw new Execption(); } 声明自定义异常 在 Java 中你能够自定义异常。编写本身的异常类时须要记住下面的几点。 全部异常都必须是 Throwable 的子类。 若是但愿写一个检查性异常类,则须要继承 Exception 类。 若是你想写一个运行时异常类,那么须要继承 RuntimeException 类。指针
通用异常 在Java中定义了两种类型的异常和错误。 JVM(Java虚拟机) 异常:由 JVM 抛出的异常或错误。例如:NullPointerException 类,ArrayIndexOutOfBoundsException 类,ClassCastException 类。 程序级异常:由程序或者API程序抛出的异常。例如 IllegalArgumentException 类,IllegalStateException 类。对象
异常总结 1 在运行异常程序的时,采用逻辑去合理规避同时辅助try-catch处理 2 在多重catch 块后面,能够加上一个catch(Exception)来处理可能被遗漏的异常 3 对于不肯定的代码,也能够加上try-catch,处理潜在的异常 4 尽可能去处理异常,切忌只是简单的去调用printStackTrace()去打印输出 5 具体如何处理异常,要根据不一样的业务需求和异常类型去决定 6 尽可能添加finally 语句去释放占用的资源 (数据库) 7重写方法须要抛出与原方法所抛出异常类型一致的异常 或者不抛出异常blog