博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java拦截处理System.exit(0)
阅读量:4542 次
发布时间:2019-06-08

本文共 1216 字,大约阅读时间需要 4 分钟。

在使用TestNG做单元测试时,需要测试的代码中出现System.exit(0),导致单元测试还未结束程序就停止了。解决方法如下:

public class TestMain {    public static void main(String args[]) {        NoExitSecurityManager manager = new NoExitSecurityManager();        System.setSecurityManager(manager);        new TestNGApp("test/TestUtils.xml").run();        manager.exitFilter = false;        System.exit(0);    }    /**     * 拦截系统退出     */    private static class NoExitSecurityManager extends SecurityManager {        boolean exitFilter = true;        @Override        public void checkPermission(Permission perm) {        }        @Override        public void checkPermission(Permission perm, Object context) {        }        @Override        public void checkExit(int status) {            super.checkExit(status);            if (exitFilter) {                throw new ExitException(status);            }        }    }    protected static class ExitException extends SecurityException {        private static final long serialVersionUID = 1L;        public final int status;        public ExitException(int status) {            super("成功拦截System.ext(0)!");            this.status = status;        }    }}  

参考:

  

 

转载于:https://www.cnblogs.com/feng-gamer/p/10006508.html

你可能感兴趣的文章
python中的List,Tuple,Set,Dictionary
查看>>
JavaWeb 学习007-4个页面,5条sql语句(添加、查看、修改、删除)2016-12-2
查看>>
用JavaScript 来将数字转换成字符。
查看>>
扩展欧几里得算法
查看>>
java中的包装类
查看>>
采用多种算法,模拟摇奖:从1-36中随机抽出8个不重复的数字
查看>>
sp2.1 Practical aspects of Deep Learning
查看>>
java中的缓存
查看>>
2、文件夹
查看>>
DLL_Vs_CLL
查看>>
MakeFile
查看>>
AVAST 4.8
查看>>
6.1.1 web前端介绍
查看>>
jquery实现当前页面编辑
查看>>
初识rt-thread
查看>>
微服务架构下介质管理规范
查看>>
关于AutoCAD 2014的securityload…
查看>>
BM和KMP字符串匹配算法学习
查看>>
常用基本命令四(用户管理命令) - 黑猴子
查看>>
项目管理知识1
查看>>