Java 基础语法 异常处理
在Java编程中,异常处理是必不可少的部分。因为我们写的程序难免出现一些不可预见的情况,比如文件丢失、网络连接中断等等。这些情况,称之为异常。如果没有进行适当的处理,会导致程序的崩溃,影响整个程序的运行。因此,我们需要通过异常处理技术来保证程序的健壮性和可靠性。
异常的定义
异常是在程序中发生的不正常情况,它中断了程序的正常执行过程。比如试图打开一个不存在的文件,或者试图除以0等等。Java中,异常是以对象的形式存在的,它们都是Throwable类或其子类的实例。Throwable分为两种类型:Error和Exception。
-
Error:指的是系统级别的问题,比如内存溢出、虚拟机崩溃等等。这些异常是不可恢复的,一旦发生,程序就会直接崩溃。
-
Exception:指的是由于程序本身的缺陷导致的异常。这些异常是可以恢复的,程序可以通过一些处理来解决这些异常问题。
异常的处理
在Java中,我们可以使用try-catch-finally块来处理异常。代码中可能会出现异常的部分会被放到try块中,而针对异常的处理逻辑则在catch块中。如果异常被抛出且没有被捕获,则程序会直接崩溃。如果希望无论是否有异常,finally块中的逻辑都能被执行到,可以将相关代码放在finally块中。
下面是Java中异常处理的示例代码:
try {
//可能会出现异常的代码
} catch (Exception e) {
//异常处理逻辑
} finally {
//finally块中的代码
}
除了try-catch-finally,Java中还提供了throws关键字来处理异常。当我们在方法中抛出异常时,可以使用throws将异常抛出给调用者。
下面是Java中使用throws处理异常的示例代码:
public void readFile(String filename) throws Exception {
// 读取filename所对应的文件
}
示例说明
示例一 :除数为0的异常
public static void main(String[] args) {
int a = 12;
int b = 0;
try {
int c = a / b;
} catch (ArithmeticException e) {
System.out.println("除数不能为0");
} finally {
System.out.println("finally块中的语句");
}
System.out.println("程序正常结束");
}
上述代码中,我们尝试将一个数除以0,这种情况会导致程序抛出一个ArithmeticExceptio异常。我们在catch块中针对这种异常进行处理,将问题输出。同时,无论是否有异常,finally块中的语句都会被执行。
示例二:文件不存在的异常
public void readFile(String filename) {
try {
FileInputStream in = new FileInputStream(filename);
// 读取内容...
in.close();
} catch (FileNotFoundException e) {
System.out.println("文件不存在");
} catch (IOException e) {
System.out.println("文件读取失败");
} finally {
System.out.println("finally块中的语句");
}
}
上述代码中,我们尝试读取一个不存在的文件,这种情况会导致程序抛出一个FileNotFoundException异常。我们在catch块中针对这种异常进行处理,将问题输出。同时,无论是否有异常,finally块中的语句都会被执行。如果文件读取的过程中出现其它异常,则异常处理的逻辑会转到第二个catch块中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 基础语法 异常处理 - Python技术站