package day01; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Test06 { /** * Java中的异常分为两大类:编译时异常和运行时异常,也被称为受检异常和非受检异常所有的 * RuntimeException类及子类都被称为运行时异常,其他的异常都是编译时异常 * 编译时异常:必须显示处理,否则程序会发生错误,无法通过编译; * 运行时异常:无需显示处理,也可以通过编译时异常-样处理; * <p> * Throwable的成员方法 * 方法名 说明 * public String getMessage 返回此throwable的详细消息字符串 * public String toString 返回此可抛出的简短描述 * public vold printStackTrace() 把异常的错误信息输出在控制台 * <p> * Java允许在方法的后面使用throws关键字对外声明该方法有可能发生异常,这样调用者在调用方法时,就 * 明确地知道该方法有异常,并且必须在程序中对异常进行处理,把它向上一层抛出或者try catch,否则编译无法通过. * 自定义异常,继承Exception类即可。 * * @param args */ public static void main(String[] args) { System.out.println("程序开始"); /** * ParseException * 在这里是日期格式异常,也就是日期格式解析异常,属于编译时异常 * 因为我们根本就没有给他传递任何格式 */ String strDate = "2020-10-30"; SimpleDateFormat s = new SimpleDateFormat(""); try { Date date = s.parse(strDate); } catch (ParseException e) { e.printStackTrace(); } /** * NumberFormatException 数字格式异常,或不符合要求的格式 * 这里是编译时异常 */ String name = "www"; try { int sam = Integer.parseInt(name); } catch (NumberFormatException e) { e.printStackTrace(); } /** * 在这里发生了一个异常,就是我们的空指针异常 * 我们new出来一个对象,却没有给他分配内存地址,对象找不到内存地址,就会报这个错 * 因为空指针异常属于运行时异常没有要求强制处理(做try catch) */ System.out.println("-------------"); Test06 te = new Test06(); te.run(); System.out.println("程序结束"); } public static void run() throws NullPointerException { Integer ppd = null; ppd.intValue(); System.out.println(ppd.intValue()); } }
运行时错误和编译时错误
最新推荐文章于 2023-11-07 12:58:46 发布