• 异常的两个常用方法


    异常对象有两个非常重要的方法案例:

    package com.javase.Exception;
    /*
    异常对象有两个非常重要的方法:
        获取异常简单的描述信息:
            String msg = exception.getMessage();
        
        打印异常追踪的堆栈信息:
            exception.printStackTrace();
    */
    public class ExceptionTest08 {
        public static void main(String[] args) {
            // 这里只是为了测试getMessage()方法和printStackTrace()方法。
            // 这里只是new了异常对象,但是没有将异常对象抛出。JVM会认为这是一个普通的java对象。
            NullPointerException e = new NullPointerException("空指针异常SSSSSS");
            // 获取异常简单描述信息:这个信息实际上就是构造方法上面的String参数。
            String msg = e.getMessage();
            System.out.println(msg);
            
            // 打印异常堆栈信息。
            // java后台答应异常堆栈追踪信息的时候,采用了异步线程的方式打印的。
            e.printStackTrace();
            System.out.println("Hello World!");
        }
    }

    异常的两个重要方法案例:

    package com.javase.Exception;
    
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    /*
    异常对象有两个非常重要的方法:
        获取异常简单的描述信息:
            String msg = exception.getMessage();
        
        打印异常追踪的堆栈信息:
            exception.printStackTrace();// 一般使用这个。
            
    我们以后查看异常的追踪信息,我们应该怎么看?可以快速的调试程序呢?
        异常信息追踪信息,从上往下一行一行看。
        但是需要注意的是:SUN写的代码就不用看了(看包名就知道自己写的还是SUN写的)。主要的问题是出现在自己编写的代码上。
        
    */
    public class ExceptionTest09 {
        public static void main(String[] args) {
            try {
                m1();
            } catch (FileNotFoundException e) {
                // 获取异常的简单描述信息
                String msg = e.getMessage();
                System.out.println(msg);
                
                // 打印异常堆栈追踪信息
                // 在实际的开发中,建议使用这个,养成好习惯!
                // 这行代码要写上,不然出问题你也不知道。
                e.printStackTrace();
                /*
                java.io.FileNotFoundException: D:UsersxlWuDesktop学习异常笔记.txt (系统找不到指定的路径。)
                at java.base/java.io.FileInputStream.open0(Native Method)
                at java.base/java.io.FileInputStream.open(FileInputStream.java:213)
                at java.base/java.io.FileInputStream.<init>(FileInputStream.java:155)
                at java.base/java.io.FileInputStream.<init>(FileInputStream.java:110)
                at com.javase.Exception.ExceptionTest09.m3(ExceptionTest09.java:26)
                at com.javase.Exception.ExceptionTest09.m2(ExceptionTest09.java:22)
                at com.javase.Exception.ExceptionTest09.m1(ExceptionTest09.java:18)
                at com.javase.Exception.ExceptionTest09.main(ExceptionTest09.java:9)
                因为26行出问题导致了22行出问题
                22行出问题导致了18行出问题
                18行出问题导致9行出了问题
                
                应该先查看26行的代码,26行是代码错误的根源。
                 */
            }
            // 这里程序不耽误执行,很健壮。(服务器不会因为遇到异常而宕机)
            System.out.println("Hello World!");
        }
        
        public static void m1() throws FileNotFoundException {
            m2();
        }
        
        private static void m2() throws FileNotFoundException {
            m3();
        }
        
        private static void m3() throws FileNotFoundException {
            new FileInputStream("D:\Users\xlWu\Desktop\学习\异常\笔记.txt");
        }
    }
  • 相关阅读:
    rxjava rxandroid使用遇到的坑
    使用ARouter遇到的坑
    java(Android)跨Module调用对应类方法需求解决方案
    前端工程师技能之photoshop巧用系列第四篇——图片格式
    前端工程师技能之photoshop巧用系列第三篇——切图篇
    前端工程师技能之photoshop巧用系列第二篇——测量篇
    前端工程师技能之photoshop巧用系列第一篇——准备篇
    js中用tagname和id获取元素的3种方法
    MVC显示Base64图片
    在ASP.NET MVC应用程序中随机获取一个字符串
  • 原文地址:https://www.cnblogs.com/xlwu/p/13257938.html
Copyright © 2020-2023  润新知