(1)异常类java.rmi.AlreadyBoundException,从分类上说,该类属于?已检查 (已检查|运行时)异常, 从处理方式上说,对这种异常?抛出 处理。
(2)异常类java.util.regex.PatternSyntaxException,从分类上说,该类属于?运行时 (已检查|运行时) 异常,从处理方式上说,对这种异常?try catch处理。
A.?try B.?catch C.?throw D.?finally
A. ?try?语句 B. catch?语句 C. finally?语句 D.?throw?语句
A.?Error????B.?ArrayList C.?Exception 不行D.?NullPointerException
?throw new NullPointException();
try{
throw new ClassCastException(“类型转换出错”);
}catch(ClassCastException e){
System.out.orintln(e.getMessage());
}
class MyException extends RuntimeException;
try{
m();
}catch(ArithmeticException e){
System.out.println(“ArithmeticException”);
}catch(Exception e){
System.out.println(“Exception”);
}finally{
return 100;
}
main1
ma1
mb1
catch EOFException
In Finally
main2
为2时:
?main1
ma1
mb1
catch IOException
In Finally
main2
为3时:
main1
ma1
mb1
catch SQLException
In Finally
main2
为4时:
main1
ma1
mb1
catch Exception
In Finally
main2
在//1?处,填入以下?AB 代码可以编译通过,在//2?处,填入?D 代码可以编译通过
A.?编译不通过??未初始化变量 B.?编译通过,输出-1
C.?编译通过,输出?0 D.?以上描述都不正确
class MySub2 extends MySub{ ????public void m() throws EOFException{} } |
A. 编译出错
B. 编译正常,输出 main1 ma1 In Catch
C. 编译正常,运行时出错
D. 以上描述都不正确
A. catch(NullPointerException npe){}
B. catch(IOException ioe){}
C. catch(SQLException sqle){}
fianl 是一个修饰符,用来修饰类,引用,方法,属性,表示最后的,不可更改的
final
1.当它修饰一个变量时,表示这个变量是常量,一旦赋值就不能被修改。
2.当它修饰一个方法时,表示这个方法不能被子类重写。
3.当它修饰一个类时,表示这个类不能被继承。
finalize: 是Java中Object类的一个方法,也被称为终结器方法。当垃圾收集器决定回收一个对象时,会首先调用该对象的finalize方法。这个方法在Java中被视为一种特殊的"逃逸区",允许对象在垃圾回收前进行一些清理工作。然而,由于性能问题,从Java 9开始,finalize方法已被弃用。
finally: 是Java中异常处理的一部分。在try-catch-finally结构中,无论try块中的代码是否抛出异常,finally块中的代码总是会被执行。这使得finally块成为处理清理工作的理想场所,例如关闭文件、网络连接等。
会,因为里边的内容必须被执行
如果在 try 块中有 return 语句,那么 finally 块中的代码仍然会被执行。这是因为 finally 块是异常处理的一部分,它的作用是确保一些必要的清理工作被执行,无论 try 块中的代码是否成功执行或抛出异常
StepB ???SetpE
(1) MyException1 为已检查异常,MyException2 为运行时异常;
(2) 这两个异常均具有两个构造函数:一个无参,另一个带字符串参数,参数表示产生异常的信息。
package com.by.exception;
public class MyRuntimeException extends NullPointerException{
????public MyRuntimeException(){}
????public MyRuntimeException(String message){
????????super(message);
????}
}
class Test{
????public static void main(String[] args) {
????????try {
????????????throw new MyRuntimeException("我的详细信息");
????????} catch (MyRuntimeException e) {
????????????System.out.println(e.getMessage());
????????}
????????throw new ClassCastException();
????}
}
package com.by.exception;
public class MyException2 extends Exception{
????public MyException2(){}
????public MyException2(String message){
????????super(message);
????}
}
22.在上一题的基础上,把下面代码补充完整。
?输出ex1详细放大调用栈信息
System.out.println(ex1.getMessage);
package com.by.exception;
public class TestMyException {
????public static void main(String[] args) throws MyException2 {
????????int n;
????????n=3;
????????try {
????????????m(n);
????????} catch (MyException1 ex1) {
????????????System.out.println(ex1.getMessage());
????????}catch (MyException2 ex2){
????????????System.out.println(ex2.getMessage());
????????????throw new MyException2("n==2");
????????}
????}
????public static void m(int n) throws MyException1, MyException2 {
????????if (n==1){
????????????throw new MyException1("n==1");
????????}else{
????????????throw new MyException2("n==2");
????????}
????}
}