throws关键字表示一个方法中可能发生的异常类型 一个方法表明方法中可能抛出的异常类型后,调用它的方法可以处理这些可能发生的异常 方式如下:
publi void dosome() throws IOException,NullPointerException{ }其中dosome是方法名,IOException,NullPointerException是可能发生的异常类型
Throwable: -Error:硬件中出现的异常 -Exception:程序级别的错误 -check异常(检查时异常)(随时随地检查)(必须要用try-catch块处理) -RuntiomeException(运行时异常)(不会随时随地检查)(不一定要处理)(因为太常见了,如果每一次都要进行try-catch块处理,就显得太繁琐了)
有时候我们自己编写的程序需要一些异常,但是这种异常在JavaAPI中没有,那么就需要我们自己定义一个异常类,在需要时声明或抛出 通常情况下,需要注意到下面几点: 1.定义好类名,做到见名知意; 2.需要继承Exception(直接或间接都可以) 3.定义序列化版本号(避免出现警告) 4.重写Exception定义的所有构造方法
package com.tedu.exception; /** * 自定义年龄不合法异常类 * * @author Wildmess * */ public class IllegaAgeException extends Exception{ private static final long serialVersionUID = 1L; public IllegaAgeException() { super(); } public IllegaAgeException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); } public IllegaAgeException(String message, Throwable cause) { super(message, cause); } public IllegaAgeException(String message) { super(message); } public IllegaAgeException(Throwable cause) { super(cause); } }测试类中去处理年龄赋值发生的异常
package com.tedu.exception; /** * 使用Person类演示自定义异常的使用、抛出、处理 * @author Wildmess * */ public class ThrowDemo { public static void main(String[] args) { Person p = new Person(); try { p.setAge(500); System.out.println("当前年龄:" + p.getAge() + "岁"); } catch (IllegaAgeException e) { e.printStackTrace(); } } }