Java函数异常处理相关
Java是一门强类型的编程语言,在开发过程中经常会发生异常,如空指针、数组越界、文件读写异常等等。Java提供了异常处理机制,可以让程序在遇到异常时进行捕捉、处理并给出相应的提示,保证程序的稳定性和鲁棒性。
Java异常分类
Java把异常分为可查异常和非可查异常两种类型:
1.可检查异常:Java虚拟机强制程序必须捕捉或声明抛出的异常,如IOException,SQLException等。
2.非检查异常:编写程序无法用try…catch块或者throws子句在编译时捕捉的异常,如NullPointerException、ArrayIndexOutOfBoundsException等。
Java异常处理机制
当程序运行中抛出异常,如果没有进行处理,程序就会终止,抛出异常信息。Java提供了异常处理机制,可以在程序出现异常时捕获并进行相应的处理,保证程序的正常运行。
Java异常处理的基本语法:
try{
//程序代码
}catch(异常类型1 异常类型1的对象){
//处理异常方式1
}catch(异常类型2 异常类型2的对象){
//处理异常方式2
}finally{
//一定会执行的代码
}
1.try:尝试执行可能发生异常的代码块。
2.catch:捕获异常。当try块中的代码出现异常时,会跳转至catch块中进行处理。一个try块可以有多个catch块,每个catch块处理一种异常类型。
3.finally:无论try和catch块内是否有异常,finally块中代码都会执行。finally块通常用于释放资源等操作。
抛出异常的方式
当程序出现异常时,可以通过抛出异常的方式进行提醒,通常的方式如下:
throw new 异常类(“异常信息”)
例如:throw new Exception("数组下标越界")
Java异常处理实例
示例一:NullPointException
public class TestException{
public static void main(String[] args) {
try{
String str = null;
System.out.println(str.length());
}catch(Exception e){
System.out.println("空指针异常");
}finally{
System.out.println("无论是否发生异常,finally块一定会执行!");
}
}
}
运行结果:
空指针异常
无论是否发生异常,finally块一定会执行!
示例二:ArrayIndexOutOfBoundsException
public class TestException{
public static void main(String[] args) {
try{
int[] array = new int[5];
System.out.println(array[5]);
}catch(Exception e){
System.out.println("数组越界异常");
}finally{
System.out.println("无论是否发生异常,finally块一定会执行!");
}
}
}
运行结果:
数组越界异常
无论是否发生异常,finally块一定会执行!
示例三:IOException
public class TestException{
public static void main(String[] args) {
FileReader fr = null;
try{
fr = new FileReader("test.txt");
}catch(IOException e){
System.out.println("文件读取异常");
return;
}finally{
try{
if(fr!=null){
fr.close();
}
}catch(IOException e){
System.out.println("文件关闭异常");
}
}
}
}
运行结果:
文件读取异常
文件关闭异常
实例中,程序通过FileReader尝试读取文件,如果文件不存在,则会抛出IOException。程序中使用了try…catch块捕获异常,并且在finally块中用于释放资源,即关闭文件。
总结
Java异常处理是Java编程中必不可少的基本知识,掌握Java异常处理机制可以有效提高程序的稳定性和鲁棒性。在编程中常见的异常包括空指针、数组越界、文件读写异常等等,Java提供了一套完整的异常处理机制,包括try、catch、finally等语句和throw、throws等关键字,能够对异常进行捕获、抛出、处理,保证程序的正常运行。在编写代码时,应该养成好的编码习惯,避免出现大量的异常,提高程序的可维护性。
