只要继承Exception或者RuntimeException就是异常类的一员
格式
public class 异常类名 extends Exception{ 无参构造(){ } 带参构造(){ } }
//继承异常类 pulic class ScoreException extends Exception{ public ScoreExpetion(){ } public ScoreException(String message){ super(message); //调用super传message,先是传给Exception,再传给Throwable //Throwable里有detailmessage = message; //这样将来就可以通过getMessage()或者printStackTrace();获取异常信息 } }
public class Teacher{ public void checkScore(int score) throws ScoreException{ if(score < 0 || score > 100){//产生异常 需要抛出 //用带参构造方法显示异常原因 throw new ScoreException("您输入的分数大于100或小于0");//抛出的异常是继承自Exception,所以要throws抛出异常类ScoreException,跟在方法体后面 } else{ System.out.println("分数正常"); } } }
import java.util.Scanner; public class TeacherText{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("请输入分数:"); int score = sc.nextInt(); Teacher t = new Teacher(); try{ t.checkScore(score);//没有try、catch会报错,因为Exception是编译异常,必须处理 } catch{ e.printStackTrace();//输出异常信息 } } }
throws
- 用在方法声明后面,跟的是异常类名
- 表示抛出异常,由该方法的调用者来处理
- 表示出现异常的一种可能性,并不一定会发生这些异常
throw
- 用在方法体内,跟的是异常对象名
- 表示抛出异常,由方法体内的语句处理
- 执行throw,一定是抛出了某种异常(new)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)