异常处理:
try...catch... 与 throws 异常处理的区别
try...catch...:处理异常有三种,最常见的用 对象名.printStackTrace(),显示是最全面的;而且是进行了处理的,且将问题抛出;使用时快捷生成就行;
throws:
用在方法声明后,跟的是异常类的名称;
表示抛出异常,由该方法的调用者来处理。
表示有异常的可能性,并不一定会发生这些异常;
throw:
用在方法体内,跟的是异常类对象名;
表示抛出异常,由方法体内的语句处理;
执行了throw一定是有异常。
自定义异常类:
基本格式: public class 类名称 extends Exception(){
无参构造
有参构造
}
例:(我自己写的一个作业,关于年龄的)(可自行运行一下)
public class Ovyear extends Exception{
public Ovyear() {
}
public Ovyear (String message) {
super(message);
}
}
public class Msg {
public void checkYear(int year) throws Ovyear {
int a = year - 2000;
if (a >= 0) {
System.out.println("这个孩子是00后,符合年龄");
}else {
throw new Ovyear("你"+year+"年的凑啥热闹");
}
}
}
import java.util.Scanner;
public class age {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入出生年份(例如:2000):");
int year =sc.nextInt();
Msg msg =new Msg();
try {
msg.checkYear(year);
} catch (Ovyear e) {
e.printStackTrace();
}
}
}