zoukankan      html  css  js  c++  java
  • 异常复习之二

    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
    */
    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    Mysql 权限命令整理大全
    阿里云ECS发送邮件失败
    彻底删除Kafka中的topic
    mysql Slave 启动失败
    mysql双主热备
    mysql 主从笔记
    mysql主从同步的键值冲突问题的解决方法
    python0.2----如何在windows下搭建最简洁的python环境
    内存0.1---内存里数据的表示形式以及进制转换
    python0.1-----pyhon的优缺点,为何学习python
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/8353402.html
Copyright © 2011-2022 走看看