import java.io.*;
class MyException1
{
static String str="";
public static void main(String args[])
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter your food");
try{
str=br.readLine();
}catch(IOException e){
System.out.println("Exception has been occurred"+e);
}
try{
checkFood();
}catch(BadException be){
System.out.println("Exception"+be);
}
}
private static void checkFood() throws BadException
{
if(str.equals("Rotten")|| str.equals("")){
System.out.println("Bad food");
//throw new BadException();
throw new BadException("Not Eatable");
}else{
System.out.println("Good food !! enjoy");
}
}
}
class BadException extends Exception
{
String food;
BadException()
{
super();
food="invalid";
System.out.println(food);
}
BadException(String s)
{
super(s);
food=s;
}
public String getError()
{
return food;
}
}
В программе, как это public String getError()
возвращает переменную food
? Я нигде не звонил?Как работает ключевое слово «супер», когда вызывается из конструктора?
Если я удаляю линию super(s);
, тогда «Not Eatable» не печатается. Но если я оставлю эту строку, тогда она будет распечатана. Как работает этот программный поток?
«Сомнение» означает, что вы считаете, что что-то не соответствует действительности, а не то, что вы * путают * о чем-то. Расскажи своим друзьям. – user359996
@ user359996: Мне просто нравится эта часть, «Скажи своим друзьям». ;) –