Wenn der Rückgabewert der API ungültig ist, möchte ich abhängig von der API eine andere Ausnahme verwenden.
Ein Memorandum, das anscheinend in einer Situation verwendet werden kann, in der der Großteil der Verarbeitung ähnlich zu sein scheint
ThrowExceptionTest.java
package reflection;
public class ThrowExceptionTest {
public static void main(String[] args) {
try {
throwException("w");
} catch (WwwwException e) {
System.out.println(e.getMessage());
} catch (ZzzzException e) {
System.out.println(e.getMessage());
}
}
/**
*Schalten Sie die vom Flag ausgelöste Ausnahme um.
*
* @param flg
* @throws WwwwException
* @throws ZzzzException
*/
private static void throwException(String flg) throws WwwwException, ZzzzException {
WwwwException w = new WwwwException("w nicht gut");
ZzzzException z = new ZzzzException("Nein mit z");
if (ApiName.W.getText().equals(flg)) {
throw w;
}
if (ApiName.Z.getText().equals(flg)) {
throw z;
}
}
}
class WwwwException extends Exception {
private static final long serialVersionUID = 1L;
WwwwException(String msg) {
super(msg);
}
}
class ZzzzException extends Exception {
private static final long serialVersionUID = 1L;
ZzzzException(String msg) {
super(msg);
}
}
enum ApiName {
W("w"),
Z("z");
private String text;
private ApiName(final String text) {
this.text = text;
}
public String getText() {
return text;
}
}
Schlechter Punkt: Es ist ärgerlich, eine Schlüsselaufzählung zu haben
Ich wollte wirklich etwas Gutes mit der Exception-Klasse als Argument machen.
Argumente: Class <? Erweitert Throwable>
Verarbeitung: throw argument .newInstance ()
Mögen
Aber das liegt daran, dass ich Reflexion verwenden muss
Recommended Posts