Hallo zusammen,
beim Programmieren eines einfachen Rechners habe ich folgendes (wichtig is default: clausel):
Diese wirft eine Exception welche als Argument ein Char hat (und nicht wie üblich ein String oder gar nichts). Die Class UnknownOpException() hat als Ancestor die Class Exception.
Nun habe ich in den API's nachgeschaut und es gibt keine Argumentenübergabe mit Char. Hier meine Class:
wenn ich nun einen falschen Operator eingebe, wird in der Exception immer der erste Konstruktor verwendet anstelle des zweiten und die Ausgabe is: null
super(msg);
hingegen kann ich ja nicht verwenden weil in Exception keine Chars annimmt. wie kann ich das Problem umgehen?
Am Ende möchte ich ausgeben:
System.out.println(e.getMessage() + "is no operator");
Danke vielmals
beim Programmieren eines einfachen Rechners habe ich folgendes (wichtig is default: clausel):
Java:
/**
* Returns n1 op n2, provided op is one of + - / *
* Any other value of op throws UnknownOpException
*/
public double evaluate(char op, double n1, double n2) throws DivideByZeroException, UnknownOpException
{
double answer;
switch(op)
{
case '+':
answer = n1 + n2;
break;
case '-':
answer = n1 - n2;
break;
case '*':
answer = n1 * n2;
break;
case '/':
if((-precision < n2) && (n2 < precision))
throw new DivideByZeroException();
answer = n1 / n2;
break;
default:
throw new UnknownOpException(op);
}
return answer;
}
Diese wirft eine Exception welche als Argument ein Char hat (und nicht wie üblich ein String oder gar nichts). Die Class UnknownOpException() hat als Ancestor die Class Exception.
Nun habe ich in den API's nachgeschaut und es gibt keine Argumentenübergabe mit Char. Hier meine Class:
Java:
public class UnknownOpException extends Exception
{
public UnknownOpException()
{
super();
}
public UnknownOpException(char msg)
{
getMessage(msg);
}
public void getMessage(char msg)
{
System.out.println(msg);
}
}
wenn ich nun einen falschen Operator eingebe, wird in der Exception immer der erste Konstruktor verwendet anstelle des zweiten und die Ausgabe is: null
super(msg);
hingegen kann ich ja nicht verwenden weil in Exception keine Chars annimmt. wie kann ich das Problem umgehen?
Am Ende möchte ich ausgeben:
System.out.println(e.getMessage() + "is no operator");
Danke vielmals
Zuletzt bearbeitet: