本文共 2863 字,大约阅读时间需要 9 分钟。
B:RuntimeException和他的所有子类异常,都属于运行时期异常。NullPointerException,ArrayIndexOutOfBoundsException等都属于运行时期异常.
运行时期异常的特点:
方法中抛出运行时期异常,方法定义中无需throws声明,调用者也无需处理此异常
运行时期异常一旦发生,需要程序人员修改源代码.
package com.itheima_01;import java.io.FileWriter;import java.io.IOException;/* * 异常的分类: 运行时期异常:RuntimeException的子类就是运行时期异常,在编译时期可以自由选择处理或者不处理 编译时期异常:是Exception的子类,非RuntimeExcpetion的子类,在编译时期必须处理 */public class ExceptionDemo6 { public static void main(String[] args) { //System.out.println(2 / 0); //String s = null; //System.out.println(s.length()); try { FileWriter fw = new FileWriter("a.txt"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
需求:写一个方法,接受考试成绩,如果考试成绩的范围在0-100之间则属于正常,否则属于异常
当成绩不在0~100范围内,抛出一个运行时异常或者编译时异常,阻止程序继续向下执行
package com.itheima_01;/* * 需求:写一个方法,接受考试成绩,如果考试成绩的范围在0-100之间则属于正常,否则属于异常 * * throws:处理异常的一种方式,把异常抛出,由调用者来处理 * throw:制造异常的方式,并且结束方法 * * 注意:如果抛出(throw)的是编译时期异常,必须在方法声明处抛出(throws) * * 如何自定义一个异常类呢? * 非常简单,写一个类去继承Exception或者RuntimeException,然后实现多个构造即可 * * */public class ExceptionDemo7 { public static void main(String[] args) { /*boolean flag = checkScore(-10); System.out.println(flag);*/ try { checkScore(110); } catch (Exception e) { //System.out.println(e.getMessage()); e.printStackTrace(); } //checkScore(110); } /* public static boolean checkScore(int score) { //判断考试成绩是否符合范围,如果不符合则返回false if(score < 0 || score > 100) { return false; } //符合 return true; }*/ public static void checkScore(int score) throws Exception { if(score < 0 || score > 100) { throw new RuntimeException("考试成绩不符合要求"); //throw new Exception("考试成绩不符合要求"); } System.out.println("考试成绩符合要求"); } }
我们也可以自定义一个编译时异常或者运行时异常来抛出:
package com.itheima_01;public class MyException extends /*RuntimeException*/ Exception{ public MyException() { super(); // TODO Auto-generated constructor stub } public MyException(String message) { super(message); // TODO Auto-generated constructor stub } /*public MyException() { super(); } public MyException(String s) { super(s); }*/ }package com.itheima_01;/* * 需求:写一个方法,接受考试成绩,如果考试成绩的范围在0-100之间则属于正常,否则属于异常 * * throws:处理异常的一种方式,把异常抛出,由调用者来处理 * throw:制造异常的方式,并且结束方法 * * 注意:如果抛出(throw)的是编译时期异常,必须在方法声明处抛出(throws) * * 如何自定义一个异常类呢? * 非常简单,写一个类去继承Exception或者RuntimeException,然后实现多个构造即可 * * */public class ExceptionDemo7 { public static void main(String[] args) { /*boolean flag = checkScore(-10); System.out.println(flag);*/ try { checkScore(110); } catch (Exception e) { //System.out.println(e.getMessage()); e.printStackTrace(); } //checkScore(110); } public static void checkScore(int score) throws Exception { if(score < 0 || score > 100) { throw new MyException("考试成绩不符合要求"); } System.out.println("考试成绩符合要求"); } }
转载地址:http://ynjqb.baihongyu.com/