• java中关于抛出异常的输出顺序问题


    以下纯属个人拙见,如有不妥,还望海涵

    • 对比:
      在这里插入图片描述
      在这里插入图片描述
    • 代码示例
    public class Demo{
        public static void main(String[] args) {
            Thread t = new Thread(new MyRunnable());
            t.setName("t");
            t.start();
            //睡眠5秒
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //中段t线程的睡眠
            t.interrupt();
        }
    }
    
    class MyRunnable implements Runnable{
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName()+"--->begin");
            try {
                Thread.sleep(1000*60);
            } catch (InterruptedException e) {
                e.printStackTrace();
                System.out.println("测试");
            }
            System.out.println(Thread.currentThread().getName()+"--->end");
        }
    }
    

    输出:
    在这里插入图片描述

    • 删掉main方法中的睡眠5秒的代码后:
    public class Demo{
        public static void main(String[] args) {
            Thread t = new Thread(new MyRunnable());
            t.setName("t");
            t.start();
            //中段t线程的睡眠
            t.interrupt();
        }
    }
    
    class MyRunnable implements Runnable{
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName()+"--->begin");
            try {
                Thread.sleep(1000*60);
            } catch (InterruptedException e) {
                e.printStackTrace();
                System.out.println("测试");
            }
            System.out.println(Thread.currentThread().getName()+"--->end");
        }
    }
    

    输出:
    在这里插入图片描述
    这里的异常按理说应该在中间输出,但是跑到了后面。原因如下:

    • 控制台的两种输出方式
      1、控制台的输出方式总共两种,分别是:
      正常输出:System.out.println();
      发生错误时的输出:System.err.println();
    • 所以原因可能是:
      错误输出延迟打印到控制台了。
  • 相关阅读:
    javascript 详解数组
    javascript ES5 Object对象
    JavaScript的检测属性、属性特性、枚举属性
    javascript之值传递与引用传递
    数据分析--数据可视化
    Mysql基础知识
    Excel-数据透视表
    如何做一份好的分析报告?
    面对问题,如何去分析?(流失问题)
    面对问题,如何去分析?(日报问题)
  • 原文地址:https://www.cnblogs.com/yu011/p/13028749.html
Copyright © 2020-2023  润新知