-
e.printStackTrace():打印异常的异常信息
finally语句块是在try块和catch块中的return语句执行完之后返回到调用者之前回去执行的
如果try-catch-finally语句内没有任何的return语句,则会调用这三个语句块之外的return语句
1.try-catch-finally执行顺序:
①执行try{}块
②如果try{}块有异常产生,执行catch{}块
③无论有没有异常都要执行finally{}块,这里可以看出只要finally中有return,必然返回finally{}中的return
2.return的执行,
①.如果finally{}块中有return语句,只执行finally{}块中的return语句
②.如果finally{}块中没有return语句,如果try{}有异常,则返回catch{}中的return语句,不然执行try{}中return语句
在这种情况下,return语句块是在finally{}之后执行try catch finally语句块
1.用于捕捉异常。
2.当try中有错误出现时,会被catch捕捉,并且做出相应的反应。
3.当有final时,该语句块中的程序会在catch后执行【即使catch有return】,返回函数前执行。
4.当try catch final语句块中都没有return时,程序会从语句块外部读取;否则会按照final-->catch-->try中是否有return返回。
1)有错误情况下
如果finally块中有return语句,try语句 -> catch -> finally -> finally.return
如果finally块中没有return语句,try语句 -> catch -> finally -> catch.return
2)无错误情况下
如果finally{}块中有return语句,try语句 -> finally -> finally.return
如果finally{}块中没有return语句,try语句 -> finally -> try.returnreturn在try-catch-finally中:
1、不管有木有出现异常,finally块中代码都会执行;
2、当try和catch中有return时,finally仍然会执行;
3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,仍然是之前保存的值),所以函数返回值是在finally执行前确定的;
4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。
1.e.printStackTrace()可以输出异常信息
2.-1为抛出异常的习惯写法
3.如果方法中try,catch,finally中没有返回语句,则会调用这三个语句块之外的return结果
4.finally块无论如何,不管前面是正常还是异常,都要执行。
5.finally 在try中的return之后 在返回主调函数之前执行查看全部 -
格式:
try{
需要执行的代码
}catch(Exception e){
出现错误时显示的内容
}catch(Exception2 e){
出现错误时显示的内容
}finally{
进行一些善后工作
}
顺序:先父类后子类(就近原则)
查看全部 -
Course cr = CourseToChoose.get(0); Course cr3 = CourseToChoose.get(1); Course course[] = {cr,cr3}; System.out.println("测试containsALL()"); System.out.println(CourseToChoose.containsAll(Arrays.asList(course)));
containsALL的用法
查看全部 -
第一章 异常处理查看全部
-
Java中String 对象创建后则不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同
查看全部 -
泛型集合可以添加规定类型子类型的对象
查看全部 -
泛型集合能存入子类型的实例
查看全部 -
①、集合只能存放对象。比如你存一个 int 型数据 1放入集合中,其实它是自动转换成 Integer 类后存入的,Java中每一种基本类型都有对应的引用类型。
②、集合存放的是多个对象的引用,对象本身还是放在堆内存中。
③、集合可以存放不同类型,不限数量的数据类型。
查看全部 -
java继承中super和this关键字区别:通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。this指向自己的引用
extends 只能继承一个类
implements 可以同时继承多个接口(接口跟接口之间采用逗号分隔)
final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写:
子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式)。如果父类的构造器带有参数,则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。
如果父类构造器没有参数,则在子类的构造器中不需要使用 super 关键字调用父类构造器,系统会自动调用父类的无参构造器
查看全部 -
error:如虚拟机错误,线程死锁,,,类似于工程停水停电,机器坏了,是硬伤
Exception:编码,环境,用户操作输入出现问题。
查看全部 -
66666
查看全部 -
集合框架描述
查看全部 -
Math类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.方法名,如:Math.round();
查看全部 -
String str = "8";
int d = Interger.parseInt(Str); 将字符串类型转为INT类型
int e = Interger.valueOf(str); 将字符串类型转为Interger类型
这里是不一样的!!!
查看全部 -
将字符串转换成基本类型有两种方法:
1. 调用包装类的 parseXxx 静态方法
2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱
查看全部
举报