Podemos nos concentrar na conta do autor, se concentrar em aprender Java a partir de notas de raspadinhas antologia. Nós também pode aprender a partir de um catálogo visitar o blog do blog jardim do autor. Os documentos de cinema a aprendizagem ea partilha de informações sobre os programadores com base no emprego classe cavalo de vídeo escuro, e notas de gravação e suas próprias opiniões. Bem-vindo a aprender e discutir.
[Notas] a partir do zero para aprender diretório Java
O que é anormal?
Anormalidade não é normal, ocorrem erros quando compilar o nosso código ou tempo de execução. Quando escrever o código, muitas vezes alguns pequenos problemas, então, a fim de nos ajudar a lidar com esses problemas, exceção Java fornece um mecanismo para nós. Exceção contém o tipo errado, localização e causa
a arquitetura anormal:
Throwable (a maioria de nível de entrada)
Erro: problemas graves podem surgir não manipulado
exceção: pode lidar com problemas
abordagem incomum
1.jvm maneira de exceções punho:
Se ocorrer uma exceção que não lidar com, JVM vai nos ajudar a lidar com, ele tipo incomum, porque não não aparecem na linha de comando, e também terminou o programa, código de exceção não vai estar de volta execução.
2. Captura processo de
instrução try ... catch
formato:
try {
有可能出现问题的代码;
} catch(ArithmeticException ae) {
处理异常;
}
A ordem de tentativa de execução ... catch:
Primeiro, a instrução try, se o código seguinte incomum, anormal não é executado saltar directamente para a instrução catch, declaração após a captura, todo o fim try ... catch, se não é incomum, após a instrução é executada try, try ... catch directamente ao fim, não executando instrução catch
3. jogado fora
quando não quer tratar a exceção, ou a incapacidade de lidar com, podemos optar por lançar uma exceção, que chama o método que exceções identificador, use a palavra-chave joga na declaração de um método lança uma exceção
Por exemplo:
import java.io.FileWriter;
import java.io.IOException;
public class ExceptionDemo2 {
public static void main(String[] args) throws Exception {
//method();
function();
}
public static void function() throws Exception {
FileWriter fw = new FileWriter("a.txt");
}
private static void method() {
try {
System.out.println(1);
//System.out.println(2 / 0);
System.out.println(2);
} catch(ArithmeticException ae) {
System.out.println("除数不能为0");
}
System.out.println(3);
}
}
Lidar com várias exceções
Como lidar com várias exceções:
1. Você pode usar uma pluralidade de tentativa .. declaração .catch
2. Usando uma pluralidade de try e catch
Sequência de entre a pluralidade de captura:
pode haver entre a pluralidade de sub-mãe capturar
nenhuma ordem entre o mesmo nível
se o pai criança, a classe principal tem de ser colocado atrás do excepção
类 Throwable
public class ExceptionDemo3 {
public static void main(String[] args) {
try {
System.out.println(2 / 0);
} catch (ArithmeticException e) {
// String getMessage() : 原因
// System.out.println(e.getMessage());
// String toString() 类型和原因
// System.out.println(e.toString());
// void printStackTrace():类型原因和位置,和jvm处理不同,不会终止程序运行
e.printStackTrace();
}
// System.out.println("hello");
}
}
finalmente
finalmente: try ... catch uso de combinação, tais como trabalhos de acabamento para a liberação de recursos, independentemente da instrução try ... catch é executada, finalmente dadas executa o código, usado para tratar alguns dos toques finais, tais como a liberação de recursos
try {
有可能出现问题的代码;
} catch(异常对象) {
处理异常;
} finally {
释放资源;
清理垃圾;
}
classificação incomum
Executar um anormal: RuntimeException é uma subclasse de exceções de tempo de execução, são livres para escolher o tratamento em tempo de compilação ou não lidar com
exceção em tempo de compilação: Exceção é uma subclasse de subclasse não-RuntimeExcpetion devem ser tratados em tempo de compilação