TestExceptions.test
возвращает тип void
, поэтому вы не можете throw
его. Чтобы это работало, необходимо вернуть объект типа, который расширяет Throwable
.
Один пример может быть:
static Exception test(String message) {
return new Exception(message);
}
Однако, это не очень чисто. Лучше было бы определить класс TestException
, который расширяет Exception
или RuntimeException
или Throwable
, а затем просто throw
.
class TestException extends Exception {
public TestException(String message) {
super(message);
}
}
// somewhere else
public static void main(String[] args) throws TestException{
try {
throw new TestException("If you see me, exceptions work!");
}catch(Exception a){
System.out.println("Working Status: " + a.getMessage() );
}
}
(Также обратите внимание, что на все классы в пакете java.lang
можно ссылаться по их имени класса, а не по полному имени. То есть вам не нужно писать java.lang
.)