1.一个try代码段后面必须跟着若干个______代码段或者一个______代码段。
填空题
一个try代码段后面必须跟着若干个catch 代码段或者一个finally 代码段。
2.Java的异常类可以分为______类和______类。
填空题
Java的异常类可以分为(error)类和(Exception)类。
3.将源代码编译成______时产生的错误称为编译错误
填空题
在Java语言中,将源代码编译成(字节码文件)时产生的错误称为编译错误,而将程序在运行时产生的错误称为运行错误。
4.JDK中定义的异常类
填空题
JDK中定义了大量的异常类,这些类都是 (Exception)类的子类或者间接子类。
5.异常的捕获
填空题
异常的捕捉通常由try、catch两部分组成,try代码块用来存放可能发生的异常,catch代码块用来处理产生的异常。
6.在类中定义类
填空题
在一个类中,除了可以定义属性、方法,还可以定义类,这样的类被称为(内部类)
finally
块会在 try
块后执行,而不管是否执行了 catch
块。即使 try
块没有抛出异常,finally
仍然会执行。
这是错误的。异常一旦被捕获,可以通过 throws
关键字将异常抛给调用方法,从而由调用方法处理。异常不必局限于当前方法内处理。你可以将异常向上传递,直到被某个方法捕获并处理,或者如果没有被捕获,则最终由 JVM 处理并终止程序。例如:
public void methodA() throws Exception {
try {
// 代码可能抛出异常
throw new Exception("异常");
} catch (Exception e) {
// 处理异常
System.out.println("捕获异常: " + e.getMessage());
// 异常可以被传递到调用方法
throw e;
}
}
public void methodB() throws Exception {
methodA(); // 调用 methodA,可能抛出异常
}
throw
与 throws
的区别:
throw
用于实际抛出异常。throws
用于声明方法可能会抛出某些异常。-
public class ThrowsAndThrowExample {public static void main(String[] args) {try {checkAge(15); // 调用 checkAge 方法,传入非法的年龄} catch (IllegalArgumentException e) {System.out.println("捕获异常: " + e.getMessage());}}// 使用 throws 声明方法可能抛出的异常public static void checkAge(int age) throws IllegalArgumentException {if (age < 18) {throw new IllegalArgumentException("年龄不能小于18");} else {System.out.println("年龄合格");}} }
public class ThrowExample {public static void main(String[] args) {try {checkAge(15); // 调用 checkAge 方法,传入非法的年龄} catch (IllegalArgumentException e) {System.out.println("捕获异常: " + e.getMessage());}}public static void checkAge(int age) {if (age < 18) {throw new IllegalArgumentException("年龄不能小于18");} else {System.out.println("年龄合格");}} }
-
public void fun() throws IOExpectiom,SQLException{}
-
throws只用于声明异常,但不代表在当前方法体内一定要处理异常
public void someMethod() throws IOException {// 不需要捕获异常,直接声明抛出FileInputStream file = new FileInputStream("file.txt");
}
调用抛出异常的方法,处理异常
-
public void callerMethod() {try {someMethod();} catch (IOException e) {e.printStackTrace(); // 处理异常} }
继续抛出异常
public void callerMethod() throws IOException {someMethod(); // 如果不处理异常,则继续抛出 }
答案是 "非运行时异常"。
解释:
在 Java 中,异常大致可以分为两种类型:
运行时异常(RuntimeException):
- 运行时异常是指那些在程序运行时可能发生的异常,如
NullPointerException
、ArrayIndexOutOfBoundsException
等。这些异常是 非检查异常(Unchecked Exception),也就是说,编译器不会强制要求你处理这些异常,可以选择不处理它们(不需要在代码中使用try-catch
或声明throws
)。非运行时异常(Checked Exception):
- 非运行时异常是指那些需要在编译时显式处理的异常,如
IOException
、SQLException
等。编译器会强制要求你处理这些异常,要么使用try-catch
块捕获它们,要么在方法签名中使用throws
声明抛出这些异常。如果你不处理这些异常,程序将无法通过编译。对于每个选项的分析:
- 运行时异常:不会阻止程序编译,因为它们是非检查异常。
- 非运行时异常:如果不处理,会阻止程序编译。因为这些异常是检查异常(checked exception),编译器会强制要求你处理或声明抛出。
- 空指针异常(NullPointerException):是运行时异常,所以不会阻止编译。
- 运行时和非运行时异常:运行时异常不会阻止编译,只有非运行时异常会强制要求处理。
因此,正确答案是 "非运行时异常"。
一个
内部类
详细解释Java内部类详解(含:成员内部类、局部内部类、匿名内部类、静态内部类)-CSDN博客
1.成员内部类可以使用四种权限修饰符进行修饰(四种权限修饰符:public(公有的) >protected(受保护的) > (default)(缺省/默认的) > private(私有的));
2.成员内部类中不能书写静态变量和方法。
到这里竹竹零就要和大家说再见了
希望时光不负赶路人,愿我们做最好的自己!!!
如果您觉得有失偏颇请您在评论区指正,如果您觉得不错的话留个好评再走吧!!
您的鼓励就是对我最大的支持! ! !