1.finally在java的用法
try的范围内存在exception的话,就会在exception的位置跳到exception哪里,然后执行完exception之后就马上进入finally。
假如exception范围内存在return这些的也会执行finally
假如try范围内不存在exception的话,就执行完try范围内代码之后进入finally执行,finally代码
其实,一般finally写的代码就是流的关闭语句,
假如还是不明白,试一下运行我下面写的几个代码就知道的了。假如try不存在exception的话:
try{
System.out.println("try");
}catch(Exception e)
{
System.out.println("Exception");
}
finally{
System.out.println("Finally");
}
假如try中存在exception的:
try{
String demo = null;
demo.split(";");
System.out.println("try");
}catch(Exception e)
{
System.out.println("Exception");
}
finally{
System.out.println("Finally");
}
假如try中存在exception,然后exception中存在跳出语句的:
try{
String demo = null;
demo.split(";");
System.out.println("try");
}catch(Exception e)
{
System.out.println("Exception");
return;
}
finally{
System.out.println("Finally");
}
假如try中不存在exception,但是try中存在跳出语句的:
try{
System.out.println("try");
return;
}catch(Exception e)
{
System.out.println("Exception");
}
finally{
System.out.println("Finally");
}
走过那4个方法你就懂得呢
2.简述java中final和finally的区别及用法
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。
finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。
3.java里面的finalize,final,finally
final 修饰用的关键字,用于修饰变量,方法等。
eg:private static final String str = "abc" (相等于一个常量) public final String helloWorld(){。..}(注意用fianl修饰的方法是不 可以被继承的, 主要是出于安全性方面考虑的) finally 异常处理时使用eg: try{ 。
. }catch() {。
.} finally{ rs.close; cn.close; } 此时他主要是做一些关闭数据集,数据库连接等 finalize 是java垃圾回收时调用的方法,这个方法一般都是系统调用的,自己 去写的很少,也很少自己去管。他有的时候也用于关闭一些资源。
4.java中try
你没有catch啊
应该是
try{
new Experiment().mathod();
}catch(Exception e){
e.printStackTrace();
}finally{
System.out.println("a");
}
捕获异常语法使用
try-catch-finally 其中finally可以省略
finally 主要用来释放资源
5.java异常捕获不写catch语句能直接写finally语句吗
当然可以,你自己试一下不就行了?
public class TestException1 {
public static void main(String[] args) {
try {
int a=1/5;
int b=1/0;
}finally {
System.out.println("finally!");
}
}
}编译运行通过,非检查异常照样被main方法抛出并在控制台打印。
语法上虽可以,但不建议这么做。
6.java为什么需要finally?
finally和try、catch配套使用的,
举个例子吧 (伪代码)
try {
执行 insert表;
conn.commit();
conn.close();
conn = null;
}catch{
try {
conn.rollback();
conn.close();
} catch (Exception e) {
}
} finally {
conn.close();
}
连接数据库,插入数据,
如果报错,则需要回滚数据,并且关闭数据库,
finally按照执行顺序,是最后执行的,当以上操作都没有关闭数据库连接,则执行finally。如果没有finally,很可能数据库连接释放不了。
需要注意:不要什么东西都写到finally,finally执行效率很低的。
7.java什么情况不走finally
Java的finally语句不会被执行的唯一情况是:先执行了用于终止程序的System.exit()方法
Java代码
public class Test
{
public static void main(String[] args)
{
try
{
System.out.println("Start");
System.exit(0);
}finally
{
System.out.println("Finally");
}
System.out.println("End");
}
}
输出结果为:Start
当然,如果在执行一般的没有System.exit()语句的try语句时,突然断电了,这时所有进程都会终止,也不会执行finally语句。
转载请注明出处育才学习网 » javafinally方法怎么写