Exception:一般是java用来表示程序出现的异常,像NumberFormatException等由于程序导致的异常。
Error:一般则是由系统级出现的错误导致的,栈溢出:StackOverFlowErrorOutOfMemor、内存溢出:OutOfMemoryError都属于系统异常。
在Exception里,也分为检查异常和非检查异常,检查异常时必须try catch捕捉或者方法抛出异常才可以,非检查异常却可以不做。一般检查异常是指可预见初见的异常,比如说IOException,一般要求强制捕获异常,抛出或处理。而非检查异常就是指不可控的异常,比如说别人让你传个值,你传了一个null进来,如果发生这种状况,在调用参数对象的属性或方法时,jvm会抛出NullPointerException。这种异常一般不需要你手动捕获。(其实一般在web开发过程中,做业务开发的时候一般都是直接捕获异常做相应的处理就好了,比如说,别人调我的订单查询业务,但我在调别人的查询商品信息接口的时候出异常了,我可以直接捕获下来,并告诉调我接口的人,查询失败和失败原因。)
RuntimeException里常见的异常
NullPointerException:空指针异常
NumberFormatException:数字转化异常
ClassCastException:类型强制转换异常
ArrayIndexOutOfBoundsException:数组越界
StringIndexOutOfBoundsException:字符串越界
IllegalArgumentException:非法参数异常
Indexoutofboundsexception:下标越界异常
检查型异常:
操作数据库异常:SQLException
输入输出异常:IOException
事务一般也只会对非检查异常起作用。