zoukankan      html  css  js  c++  java
  • java异常

    try,catch,finally语句块的return的优先级由低到高,先执行try中return之前的语句,如果遇到异常,则执行catch语句中return之前的代码,最后执行finally语句块,finally语句块中如果有return,那么程序就会提前返回,如果没有,则返回catch语句块中的return,如果没有遇到异常,则直接执行finally中的语句块,再看finally语句块中是否有return来决定返回结果。
    
    结论:
    
    1、不管是否出现异常,finally块中的代码都会执行;
    
    2、当try和catch中有return时,finally仍然会执行,finally中的return优先级大于catch大于try;
    
    3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;
    
    4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。
    
    绝大多数情况下,finally中的代码都是会被执行的,只有一种情况下,finally中的代码不会被执行,那就是在try语句块中结束掉了虚拟机(如:使用 System.exit(0); )。
    
    public class Test {
        public static void main(String args[]){
            try{
                throw new NullPointerException("听说你很闲,给你抛个异常。");
            }catch (NullPointerException e) {
                System.out.println("这里捕获空指针异常,提示内容:" + e.getMessage());
                e.printStackTrace();
            }
        }
    }
    
    自定义异常
    public class MyException extends Exception {
        public MyException() {
            super();
        }
    
        public MyException(String message) {
            super(message);
        }
    
        public MyException(String message, Throwable cause) {
            super(message, cause);
        }
    
        public MyException(Throwable cause) {
            super(cause);
        }
    
        protected MyException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
            super(message, cause, enableSuppression, writableStackTrace);
        }
    }
    

      

  • 相关阅读:
    java 爬虫 爬取豆瓣 请不要害羞 图片
    Intellij idea 基本配置
    Linux 基本操作
    Java 快速排序
    Codeforces 986D Perfect Encoding FFT
    Codeforces 749E Gosha is hunting 二分+DP
    BZOJ5305 [Haoi2018]苹果树
    Codeforces 666E Forensic Examination SAM+权值线段树
    BZOJ3712[PA2014]Fiolki 建图+倍增lca
    Codeforces 576D Flights for Regular Customers 矩阵快速幂+DP
  • 原文地址:https://www.cnblogs.com/qinyios/p/11125167.html
Copyright © 2011-2022 走看看