Criar uma nova exceção chamada MaquinaNaoEncontradaException
- Criar uma classe executavel (public static void main(String[] args)) e demonstrar como lançar uma exceção no Java com a palavra reservada throws
Criar uma nova exceção chamada MaquinaNaoEncontradaException
@Rafael98, baseado nas suas outras perguntas, vejo que vc esta iniciando seus estudo.
Sendo assim, considero lidar com exceções um pouco avançado, uma vez que vc estava com dificuldade de implementar uma classe comum e definir seus métodos e atributos.
Vc está aprendendo através de algum curso ou esta estudando sozinho?
Se for um curso, sugiro tirar as dúvidas direto com o professor. Vale pedir pra ele recapitular assuntos mais básicos e até pedir pra ir mais devagar.
Se está estudando por conta própria, sugiro não se atropelar com tanta coisa. Vá com calma.
Dito isso, vou tentar responder sua dúvida atual.
Para uma classe poder ser usada como exceção, ou seja, poder ser lançada, ela precisa ser uma subclasse de Throwable.
https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html
Normalmente, vc não vai extendê-la diretamente. Ao invés disso vc vai extender uma das subclasses dela, Exception ou RuntimeException.
https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html
https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html
Qual das duas vc vai escolher extender depende.
Toda subclasse de Exception que não for também subclasse de RuntimeException obriga o programador a tratá-la de alguma forma.
Por exemplo, a FileNotFoundException é lançada sempre que vc tenta abrir um arquivo, mas este arquivo não é encontrado, ela é uma subclasse de Exception, logo, o compilador te obriga a cuidar dela de alguma forma. Classes assim são chamadas de Checked Exceptions.
https://docs.oracle.com/javase/8/docs/api/java/io/FileNotFoundException.html
Por outro lado, IndexOutOfBoundsException, que é lançada sempre que vc tenta acessar uma posição de um array que está fora de seus limites (Exemplo: array tem 5 elementos e vc tenta acessar o 6°), é uma subclasse de RuntimeException. Classes que extendem RuntimeException são chamadas de Unchecked Exceptions e não obrigam o programador a tratá-las.
https://docs.oracle.com/javase/8/docs/api/java/lang/IndexOutOfBoundsException.html
Sem mais informações da sua parte fica dificil ajudar mais, mas acredito que a resposta pro seu exercicio seja algo como:
/*
Sua excepção "personalizada" deve extender Throwable ou uma
de suas subclasses, que é o mais comum.
*/
class MaquinaNaoEncontradaException extends Exception { }
class Main {
/*
Aquela palavra chave ali, throws, é vc dizendo ao compilador
"estou ciente que meu código lança esta exceção e não desejo
tratá-la adequadamente e aceito os riscos"
*/
public static void main(String[] args) throws MaquinaNaoEncontradaException {
/*
É assim que se lança uma exceção. Usando a palavra chave
throw seguida pela palavra chave new e o nome da sua exceção
*/
throw new MaquinaNaoEncontradaException();
}
}
Esse código geraria esta saida no terminal:
Exception in thread "main" MaquinaNaoEncontradaException
at Main.main(Main.java:7)
ola, estou fazendo umas questoes em casa só q preciso das respostas eu tento fazer e depois vejo se esta certo se quiser continuar mi ajudando agradeço