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
    */
    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    leetcode 10 正则表达式匹配(c++)
    基于.NetCore3.1系列 —— 日志记录之初识Serilog
    AspNetCore WebApi:Serilog(日志)
    .NET Core下的日志(3):如何将日志消息输出到控制台上
    Asp.Net Core用NLog记录日志操作方法
    .NET Core3.0 日志 logging-最好用的日志集合介绍
    .net core 3.1 使用nlog记录日志 NLog.Web.AspNetCore
    NetCore3.1 日志组件 Nlog的使用
    配置 ASP.NET Core 请求(Request)处理管道
    vue进入页面每次都调用methods里的方法
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/8353402.html
Copyright © 2011-2022 走看看