java自定义异常问题
interface LandAnimal{ //陆生动物接口
void Legs();
}
interface WaterAnimal{ //水生动物接口
void swim();
void layseggs();
}
abstract class Animal{ //动物的抽象类
final boolean buru=true;
final boolean shirou=true;
public final int goodmood=1;
public final int badmood=2;
public static int mood;
void kind1(boolean br){
if (br==buru)
System.out.println("是哺乳类动物");
else
System.out.println("不是哺乳类动物");
};
void kind2(boolean sr){
if(sr==shirou)
System.out.println("是食肉动物");
else
System.out.println("不是食肉动物");
};
abstract void SayHello();
abstract void SayHello(int mood);
void setmood(int mood){this.mood =mood;}
void getmood(){SayHello( this.mood);}
}
final class Frog extends Animal implements WaterAnimal,LandAnimal{
public void Legs(){
System.out.println("有2只脚的既是陆地动物又是水生动物");
}
public void swim(){
System.out.println("是水生动物");
}
public void layseggs(){
System.out.println("是卵生动物");
}
void SayHello(){
System.out.println("不会打招呼");
}
void SayHello(int mood) {
if(mood==goodmood) {
System.out.println("情绪好的时候会在岸边“呱呱呱”的唱歌");
}
else if(mood==badmood){
System.out.println("受到惊吓时,会“扑通一声跳入水中”");
}
}
}
class userException extends Exception{
public userException(String msg){
super(msg);
}
}
public class test{
static void setmood(int mood) throws userException {
if (mood != 1 || mood != 2)
throw new userException("动物没有这种表情");
}
public static void main(String[] args) {
try {
System.out.println("青蛙的特性有:");
Frog f1 = new Frog();
f1.Legs();
f1.kind1(false);
f1.kind2(false);
f1.swim();
f1.layseggs();
f1.SayHello();
f1.setmood(1);
f1.getmood();
f1.setmood(2);
f1.getmood();
} catch (userException e){
System.out.println(e.getMessage());
}
}
}
参考答案:我不知道这样对不对,你参考一下.
我在你的Test类里的main()方法里加了一个setmood(3),这样就可以捕捉到异常,你原来的是捕捉不到的.
ps:你是那个学校的啊,我和你一样也是这个学期刚开的java,我感觉你们老师出的题比我们这强多了,而且我觉得你的代码写的不错,你是本科的还是大专的?