public class age {
public static void main(String[] args){
try{
method.f1();
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}
class method{
static void f1(){
throw new RuntimeException("输入的数字不合规");
}
}
这段代码输出的结果是“输入的数字不合规”。
所以我想自定义一个异常,用来判断输入的年龄是否在0~100之间,就有了下面的代码:
public class age {
public static void main(String[] args){
int age =1000;
try{
method.f1(age);
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}
class ageException extends RuntimeException{
public ageException(String e){
super(e);
}
}
class method{
static void f1(int age){
if(!(age>0 && age<100)){
throw new ageException("输入的数字不合规");
}
}
}
Uncompilable code - 找不到符号
符号: 方法 getMessage()
位置: 类型为java.lang.String的变量 e
BUILD SUCCESSFUL (total time: 0 seconds)
po出来的结果却是找不到e.getMessage。
我们的目的是要输出“输入的数字不合规”,首先解决方法就是把e.getMessage换成“输入的数字不合规”,就可以得到想要的结果。
public class age {
public static void main(String[] args){
int age =1000;
try{
method.f1(age);
}catch(ageException e){
System.out.println("输入的数字不合规");
}
}
}
class ageException extends RuntimeException{
public ageException(String m){
super(m);
}
}
class method{
static void f1(int age){
if(!(age>0 && age<100)){
throw new ageException("输入的数字不合规");
}
}
}
run:
输入的数字不合规
BUILD SUCCESSFUL (total time: 0 seconds)
但是这样一来,f1里的“throw new ageException("输入的数字不合规");”一行又显得有些累赘。
public class age {
public static void main(String[] args){
int age =1000;
try{
if(!(age>0 && age<100)){
throw new RuntimeException("输入的数字不合规");
}
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}
其实只用把该异常归纳到运行异常后,就可以直接做判断。