【java基础:throw】抛出异常、自定义异常类
在java中允许一个函数内,如果有异常,内部不进行处理(try-catch),可以使用throw关键字抛出异常,需要在方法上声明。
Person类
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
//throws在方法上申明改方法抛出异常
public void setAge(int age) throws AgeException{
if (age<0||age>120){
//逻辑错误
throw new AgeException();
}else {
this.age = age;
}
}
}
自定义异常类AgeException.java
public class AgeException extends Exception{
public AgeException(){
super("年龄必须在0-120岁之间");
}
}
测试类Test02.java
import java.util.Scanner;
public class Test02 {
public static void main(String[] args){
Person p = new Person();
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的年龄:");
try {
p.setAge(sc.nextInt());
} catch (AgeException e) {
e.printStackTrace();
}
System.out.println("年龄:"+p.getAge());
}
}
运行结果:
输入的年龄在0-120岁之间,正常输出
输入年龄不在0-120岁之间,抛出异常
总结: 自定义异常类,当输入不合法时,代码不会报错,因为某一个异常而终止全部代码的运行。直接输出控制台代码异常的提示信息,用户看不懂,所以要抛出异常,用通俗简单的提示,给用户看。
还没有评论,来说两句吧...