Como criar um erro em Java?
if(some_condition) {
foobar();
}
else {
// raise an error
}
Pergunta estúpida, eu sei, mas pesquisei no Google e descobri que alguém lá fora me poderia ajudar.
Obrigado antecipadamente!
Obrigado a todos! Se você está lendo isso no futuro, aqui está o skinny:
erros em Java referem-se a problemas que você não deve tentar capturar
exceções referem-se a erros que você pode querer pegar.
if(some_condition {
foobar();
}
else {
throw new RuntimeError("Bad.");
}
eu usei {[[2]} porque, como uma resposta apontou, eu não tenho que declarar que estou lançando um erro de antemão, e como estou confiando em uma condição, isso é muito útil.
Obrigado a todos!5 answers
throw new java.lang.Error("this is very bad");
É mais idiomático lançar uma subclasse de excepção. O RuntimeException em particular não é controlado (por exemplo, os métodos não precisam declarar que eles podem jogá-lo). (Bem, assim é o erro, mas é suposto ser reservado para coisas irrecuperáveis).
throw new java.lang.RuntimeException("this is not quite as bad");
Nota: não é preciso construí-las naquele momento. Podes atirar as pré-construídas. Mas uma coisa boa na construção deles é que eles gravam a linha de código em que estavam. e a pilha de chamadas completa que aconteceu no momento da construção, e assim construindo uma nova direita quando você joga ela injeta-a com informações diagnósticas muito úteis.
Tenta abrir uma excepção:
public void yourMethod() throws Exception {
if (some_condition) {
foobar();
}
else {
throw new Exception("Something bad happened.");
}
}
Um erro em Java é chamado de excepção ( Veja Isto ).
if(some_condition){
foobar();
} else {
throw new Exception();
}
Formalmente, um erro é qualquer classe que se estende do Descartável.
A classe Throwable é a superclasse de todos os erros e excepções em a linguagem Java. Apenas os objectos que são instâncias desta classe (ou uma de suas subclasses) é lançada pela máquina virtual Java ou pode ser jogado pela declaração de lançamento Java. Da mesma forma, apenas esta classe ou uma de suas subclasses pode ser o argumento escreva uma cláusula de captura. Para os fins de verificação em tempo de compilação das exceções, descartáveis e eventuais subclasse de Throwable que não é também uma subclasse de qualquer A descrição do tempo de execução ou o erro são considerados como excepções assinaladas.
...
Https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html
Nesse Caso, poderá usar uma área de JOptionPane para criar uma janela de erro.
public class UnknownUnitException extends Exception{
private String message = null;
public UnknownUnitException() {
super();
}
public UnknownUnitException(String message) {
super(message);
this.message = message;
}
public UnknownUnitException(Throwable cause) {
super(cause);
}
@Override
public String toString() {
return message;
}
@Override
public String getMessage() {
return message;
}
}
Eu recomendaria Lição: exceções nos tutoriais Java