码迷,mamicode.com
首页 > 其他好文 > 详细

异常复习之二

时间:2018-01-25 23:07:27      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:time   手动   执行   i++   java异常   pre   处理   rgs   public   

java异常巩固

 

 1.try…catch…finally如何使用?

 答:try表示可能会抛出异常的语句块,catch是try出现异常后的接收者,finally中的语句无论如何代码都会执行,除非JVM关闭,通常,它会在语句块中放置一些释放资源的代码。

 

2.printStackTrace的用法和含义?

答:如果JVM追溯到调用栈最底部main方法时,仍没有找到异常代码块,则

调用异常对象printStackTrace()方法,打印方法调用栈的异常信息,当程序

出现异常,可以看栈踪迹。

 

3.throws和throw的用法和区别?

 答:throws使用方法是在main方法后面继承的,一般是交给JVM使用,throw是手动抛出异常。

 

4.如何自定义异常?

答:继承Exception或runtimeException。

 

5.finally和final的区别?

答:finally中的语句块表示一定要执行的代码,而final定义的变量相当于是常量,不可修改,方法相当于是最终方法,不可重写。即一个必须执行且作为异常处理的一部分,另一个不可修改。

 

小练习:

1、输入至少五个整数。

import java.util.*;
class testP{
    public static void main(String[] args) {
        try{
            if(args.length<5)
                throw new Exception();

            int intarray[]=new int[args.length];

            for (int i=0;i<args.length;i++)
                intarray[i]=Integer.parseInt(args[i]);
            
            for (int i=0;i<intarray.length;i++)
                System.out.println(intarray[i]+"");
            }
            catch (NumberFormatException e) {
                System.out.println("请输入整数:");
            }
            catch (Exception e) {
                System.out.println("请输入至少五个整数:");
            }
        
    }
}

finally块在什么时候执行?try{}里有一个return语句,那么紧跟在这个try后的finally{}中的代码是否会被执行?何时被执行,在return之前还是之后?

答:会被执行,且在return(执行后会返回值且跳出函数体)之前。若return在finally中,则该return会覆盖其它的return,当然也是先执行finally语句。

public class Test{
    public static int testFianlly{
        try{
            return 1;
        }catch (Exception e) {
            return 0;
        }finally{
            System.out.println("exection finally");
        }
    }

    public static void main(String[] args) {
        int result=testFianlly();
        System.out.println(result);
    }
}
/*
运行结果:
execute finally
1
*/

public class Test{
    public static int testFinally(){
        try{
            return 1;
        }catch(Exception e){
            return 0;
        }finally{
            System.out.println("exeception finally");
            return 3;
        }
    }

    public static void main(String[] args) {
        int result=testFinally();
        System.out.println(result);
    }
}
/*
exeception finally
3
*/

 

异常复习之二

标签:time   手动   执行   i++   java异常   pre   处理   rgs   public   

原文地址:https://www.cnblogs.com/shijinglu2018/p/8353402.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!