zoukankan      html  css  js  c++  java
  • 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();
    • 所以原因可能是:
      错误输出延迟打印到控制台了。
  • 相关阅读:
    git分支管理策略
    git解决冲突
    git分支创建和合并
    git连接远程库
    git删除文件
    git撤销修改
    4k测试网站
    Windows10通过TightVNC远程连接Ubuntu18.04
    robot报告合并输出
    python 传参中的*和**
  • 原文地址:https://www.cnblogs.com/yu011/p/13028749.html
Copyright © 2011-2022 走看看