异常与错误
异常:在Java当中,将程序执行中发生的不正常情况称之为异常
在执行过程当中发生的异常分为两类
- Error:Java虚拟机无法解决的严重问题
- Exception:其他因编程错误或偶然的外在因素0导致的一般性问题,可以使用针对性的代码处理
常见的异常有哪些:
- 运行时异常
- ArrayIndexOutOfBounoundException:角标越界
- NullPointerException:空指针异常
- NumberFormatException:
- Arithmeticulous:算术异常
- InputMismartchException:输入类型不匹配
- 编译时异常:
- IOException:-------->>>>>>>>FileNotFoundException:
- java中异常的处理方式:
- try-catch-finally:
- try中包含的是可能出现异常的代码,catch时可能出现的异常,当出现异常时,逐一匹配,进入catch的异常处理.处理完后,就不会再匹配后续异常的catch结构,而是退出try-catch结构,继续进行后续代码
- try -catch节后当中,多个catch的异常类型如果满足子父类关系,则子类声明必须在父类catch结构上面,否则报错,若不满足子父类关系,不必强求先后顺序
- 常见的异常处理方式:getMessage() 和 printStakeTrace()
- try结构中声明的变量,出了结构,就失效,不可以调用
- finally存放一定会被执行的代码
try{可能出现异常的代码} catch(异常1 e){
出现异常后进行的解决的操作
} finally{最终一定要执行的代码}
- throws +异常类型 :采用的是抛出的方式处理的异常,但没有解决异常只是抛给了方法的调用者
throws 可能抛出的异常类型{}
try-catch 和throws的使用情况
如果代码涉及到资源的关闭(流的关闭,数据库的链接关闭,socket的关闭),必须使用try-catch
父类别重写的方法没有使用throws的方式处理异常,那么子类重写的方法也不能用throws处理异常
子类重写的方法throws的异常类型不大于父类被重写的方法throws的异常
我们可以自定义抛出异常,手动创建一个异常对象(throw)
throw new RuntimeException("传入数据异常")
throws和throw的区别:
trows:是一个抓的过程,抓取异常,再解决异常
throw :是一个抛的过程,new一个异常对象,抛出
java提供的异常处理是抛抓过程:
系统自己生成异常时抛出,或编程人员自己写个异常类,再抛出,然后再抓取异常进行处理
如何自定义异常类:
- 需要继承现有的异常类
- 需要提供一个序列版本号:servailVersionUID.作为唯一标识
- 提供重载的构造器
//需要继承于现成的继承类 public class myException extends RuntimeException{ //唯一标识 static final long servailVersionUID=-3387516993129948L; public MyEception(){ } public MyException( String msg){ super (msg); } }
throw和throws的区别:
先有throw后有throws
先(throw)抛出异常对象,后(throws或try -catch)抓取处理异常对象那