1. Java异常处理机制
异常的处理机制一:try-catch-finally
格式:
异常的处理机制二:throws
用于方法的声明中,用于向外部抛出异常。
2. 运行时异常与一般异常有何异同?
3. 说几个你常见到的异常
ArrayIndexOutOfBoundsException数组索引越界异常
NullPointerException空指针异常
ArithmeticException是计算机编程中的一种异常类型,当算术操作失败或产生错误结果时会抛出此异常。
ClassCastException表示尝试将一个对象强制转换为不兼容的类时发生了错误。
4. 说说final、finally、finalize的区别
final是关键字,用于修饰变量、方法和类,表示它们是不可改变的。
finally是关键字,用于定义一个代码块,在try-catch语句中,无论是否发生异常,finally中的代码都会被执行。
finalize是Object类中的一个方法,它会在垃圾回收器将对象从内存中清除之前被调用,用于进行资源的清理操作。但是,由于finalize()方法的调用时机不确定,不建议过度依赖它来进行资源的清理和释放操作。
5. 如果不使用try-catch,程序出现异常会如何?
程序会抛出异常并终止运行。
6. try ... catch捕捉的是什么异常?
可以用于捕获和处理各种异常。
7. 在try语句中有return语句,最后写finally语句,finally语句中的code会不会执行?何时执行?如果执行是在return前还是后
在Java中,当try块中包含return语句时,finally块中的代码仍然会被执行。finally块中的代码会在try块中的所有代码执行完毕后执行,并且在方法返回之前执行
8. 捕获异常在catch块里一定会进入finally吗?catch里能return吗?catch里return还会进finally吗?在try里return是什么情况?
在Java中,当异常被捕获并处理时,catch块中的代码不一定会进入finally块。如果在catch块中使用了return语句,则finally块中的代码将不会被执行。只有当try块中的代码执行完毕后,finally块中的代码才会被执行,无论是否抛出异常。
9. throw和throws的区别?
Throw抛出的是自定义异常
Throws用于在方法声明中指定可能会抛出的异常类型。
10. 子类重写父类抛出异常的方法,能否抛出比父类更高级别的异常类
在Java中,子类重写父类抛出异常的方法时,可以抛出与父类方法中声明的异常相同的异常类型,也可以抛出该异常的子类异常类型,但不能抛出更高级别的异常类。
11. 如何自定义一个异常?
public class AgeOutOfBoundsException extends RuntimeException{
public AgeOutOfBoundsException() {
}
//String参数接收的异常的信息
public AgeOutOfBoundsException(String message) {
super(message);
}
}
12. 请描述你对错误(Error)的理解
在Java中,Error是一种严重的程序错误,表示JVM或系统发生了无法恢复的错误。与异常不同,Error通常无法被程序处理或捕获,因为它们表示了一些无法修复的问题,比如系统内存不足、虚拟机错误、线程死锁等。
13. 请描述你对异常(Exception)的理解
在Java中,异常(Exception)是一种事件,它表示程序运行过程中遇到的意外情况或错误。当程序出现异常时,它会打断程序的正常执行流程,并传递错误信息给程序的调用者,以便程序可以适当地处理或恢复。
14. 请描述你对运行时异常(RuntimeException)的理解
运行时异常(RuntimeException)是一种unchecked异常,表示程序在运行时出现了错误或异常情况,通常是由于程序员的错误引起的。与checked异常不同,运行时异常不需要在代码中显式地处理或抛出,程序员可以选择在需要时处理或忽略这些异常。
15. 异常处理方式有几种,分别是什么?详细阐述每种方式对异常是如何处理的
try-catch:try-catch语句用于捕获并处理可能会抛出的异常。在try块中,程序员可以编写可能会抛出异常的代码。在catch块中,程序员可以处理和记录这些异常。如果try块中的代码抛出异常,则程序将跳转到try块下面的catch块,并执行其中的代码。
throws:throws关键字用于在方法声明中指定可能会抛出的异常类型。当方法可能会抛出异常时,必须在方法声明中指定它可能抛出的异常类型。这样,调用该方法的程序就知道该方法可能会抛出哪些异常,并可以适当地处理它们。
16.请列举常见异常,并说明产生原因。
NullPointerException:当程序尝试访问null对象或调用null对象的方法时抛出。通常是由于程序员未正确初始化对象或未正确处理null检查引起的。
ArrayIndexOutOfBoundsException:当程序尝试访问数组中不存在的元素时抛出。通常是由于程序员使用无效的索引访问数组元素或者数组长度错误引起的。
ClassCastException:当程序尝试将一个对象强制转换为不兼容的类型时抛出。通常是由于程序员未正确检查对象类型或者对象类型转换错误引起的。
IllegalArgumentException:当程序传递了无效的参数时抛出。通常是由于程序员未正确检查参数或者参数格式错误引起的。
IOException:当程序尝试进行输入/输出操作时,如果发生错误,则会抛出IOException。通常是由于文件不存在、文件无法读取、网络连接错误等引起的。
ArithmeticException:当程序尝试进行算术运算时,如果发生错误,则会抛出ArithmeticException。通常是由于除数为零或超出数据类型范围引起的。
SQLException:当程序尝试访问数据库时,如果发生错误,则会抛出SQLException。通常是由于数据库连接错误、SQL语句错误、数据库没有准备好等原因引起的。
RuntimeException:RuntimeException是一种非常广泛的异常类型,它包括许多常见的异常,例如:NullPointerException、ArrayIndexOutOfBoundsException、ClassCastException等。通常是由于程序员的错误引起的。
标签:Java,错误,十三,抛出,笔记,try,finally,catch,异常 From: https://www.cnblogs.com/wgh123/p/17409948.html