非常全面的Java异常处理(全文干货,值得收藏)
异常是什么
异常是指在程序的执行过程中出现了一些意外情况而导致的程序中断。这种意外情况可能是代码中的语法错误、参数错误、空指针引用等。
异常处理的意义
异常处理的目的在于让程序在出现异常后依然可以正常运行,避免出现程序崩溃的情况,同时给出明确的错误提示,让用户知道出了什么问题。
常见的异常类型
在Java中,异常分为两种类型:Checked Exception (受检查异常)和UnChecked Exception(非受检查异常)
Checked Exception (受检查异常)
Checked Exception 是指编译器在编译时要求程序必须处理的异常,如果不处理这类异常,编译就会报错。常见的 Checked Exception 包括 IOException、ClassNotFoundException。
UnChecked Exception(非受检查异常)
UnChecked Exception是指编译器在编译时并不会要求程序必须处理的异常,常见的 UnChecked Exception 包括NumberFormatException、NullPointerException和ArrayIndexOutOfBoundException。
异常处理的方法
try...catch
try...catch是最基本的异常处理方法,语法上,try 关键字后跟随的是一个代码块,在这个代码块中可以出现异常。如果出现了异常,程序就会跳转到 catch 代码块中,并执行该代码块中的异常处理逻辑。
try{
// 可能会产生异常的代码
} catch (Exception e) {
// 异常处理逻辑
}
finally
finally 是 try...catch 中的一个可选语句块,该语句块中的代码不管是否抛出异常,都会被执行。
try{
// 可能会产生异常的代码
} catch (Exception e) {
// 异常处理逻辑
} finally {
// 无论是否产生异常,都需要执行的代码
}
throw
throw关键字用来抛出异常,可以把异常对象作为参数传递给该关键字。常见使用方式是在方法中,当满足某些条件时抛出异常。
public void method() throws Exception{
if (someCondition) {
throw new Exception("exception message");
}
}
示例
示例一:IOException异常的处理
在以下代码中,readFile()方法中执行文件操作时可能会抛出IOException异常,我们通过try...catch语句块来处理该异常。如果产生异常,会在catch语句块中输出异常信息。
public static void main(String[] args) {
try{
readFile();
} catch(IOException e){
e.printStackTrace();
}
}
public static void readFile() throws IOException{
BufferedReader br = new BufferedReader(new FileReader(new File("file.txt")));
String str;
while ((str = br.readLine()) != null) {
System.out.println(str);
}
br.close();
}
示例二:空指针引用异常的处理
在以下代码中,当调用getName()方法时,可能会出现空指针情况,我们可以通过if判断来避免。
public static void main(String[] args) {
String str = null;
if(str != null){
System.out.println(str.getName());
}
}
以上就是关于Java异常处理的详细讲解,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:非常全面的Java异常处理(全文干货,值得收藏) - Python技术站