java程序运行中如果出现异常未被处理,将会被抛到java虚拟机进行处理,程序中断运行后被挂起,在页面输出错误信息(不会输出到console)
下面的代码中,因为我是使用
for (Iterator<Element> i = el.elements().iterator(); i.hasNext(); )
迭代器遍历根节点的所有子节点的flag,但是因为linux基线有 <initcmd> 节点,导致flag为空,
在传入service中进行数据库操作时抛出异常未被处理导致程序被挂起,错误信息不输出到console,直接打印到了页面。
解决方法就是try catch处理掉异常并返回false即可
public boolean isFound(String xcwIndex) {
try {
XconfigLinuxExample example = new XconfigLinuxExample();
XconfigLinuxExample.Criteria criteria = example.createCriteria();
criteria.andXcwindexEqualTo(xcwIndex); long count = xconfigLinuxMapper.countByExample(example);
return count > 0;
}catch (Exception e){
// System.out.println("xcwIndex为空,当次未遍历到flag");
return false;
}
}
public void getSysTypeByUuid(String uuid) throws IOException, DocumentException { switch (uuid){
case "66c221be-6ab2-ef53-1589-fe16877914e2": //windows
importDataXML("66c221be-6ab2-ef53-1589-fe16877914e2");break;
case "66c221be-6ab2-ef53-1589-fe16877914f4": //linux linux系都需要去除 <initcmd> 的干扰
linuxBaseline("66c221be-6ab2-ef53-1589-fe16877914f4");break;
}
}
public void linuxBaseline(String uuid) throws DocumentException, IOException { JSONObject jsonObject = new JSONObject();
String result = null; CompTools compTools = new CompTools(); String path = "C:\\RM-ROOT\\upload\\assetsConfResultXml\\" + uploadedFileName; // 创建 dom4j 解析器
SAXReader reader = new SAXReader();
Document document = reader.read(new File(path));
Element root = document.getRootElement(); List<Element> elements = root.elements();
String flag;
String xcwValue;
Integer noneComplianceConfCount = 0;
for (Element el :
elements) {
for (Iterator<Element> i = el.elements().iterator(); i.hasNext(); ) {
Element element = (Element) i.next(); flag = element.attributeValue("flag");
if (xconfigLinuxService.isFound(flag)) {
XconfigLinux allByXcwIndex = xconfigLinuxService.getAllByXcwIndex(flag);
xcwValue = element.element("cmd").element("value").getText();
result = compTools.linuxComp(allByXcwIndex.getCindex().toString(), flag, xconfigLinuxService, xcwValue);
jsonObject.put(flag, result);
if ("1".equals(result)){
noneComplianceConfCount+=1;
} } else {
// System.out.println("没找到:"+flag);
} }
}
assetsService.saveAssetsData(OriginalFilename,jsonObject,noneComplianceConfCount,uuid);
}
java程序运行中如果出现异常未被处理,将会被抛到java虚拟机进行处理,程序中断运行后被挂起,在页面输出错误信息(不会输出到console)的更多相关文章
- Java输出错误信息与调试信息
创建一个类,在该类的main()主方法中,使用System类中的out和err两个成员变量来完成调试与错误信息的输出. public class PrintErrorAndDebug { public ...
- Java程序-进程中的"进程"
进程 我们知道程序在磁盘上的时候是静态的,当他被加载到内存的时候,就变成了一个动态的,称为进程,如下图是程序被加载到内存后,在内存中的分布情况如下 此图来自http://blog.csdn. ...
- Java程序学习中各阶段的建议
第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学. 一.Java基础 首先去找一个Java的基础教程学一下,这里可以推荐一个地址,或者你也可以参照这个地址上去找相应 ...
- [转] java书籍(给Java程序猿们推荐一些值得一看的好书 + 7本免费的Java电子书和教程 )
7本免费的Java电子书和教程 1. Thinking in Java (Third Edition) 本书的作者是Bruce Eckel,它一直都是Java最畅销的免费电子书.这本书可以帮助你系统的 ...
- Java程序员备战“金九银十”必备的面试技巧(附携程Java岗面试题)
一.面试前的准备 1.1 如何准备一场面试1.1.1 如何获取大厂面试机会1.1.2 面试必知 ①. 准备介绍自己 ②. 关于着装 ③ .随身带上自己的成绩单和简历 ④. 如果笔试就提前刷一些笔试题 ...
- PS Studio调用.exe输出错误信息的解决办法
在一个button_click下调用了如下外部可执行文件: $button1_Click = { #TODO: Place custom script here .\PsExec.exe \\192. ...
- make only output error/warning message( 编译时,只输出错误信息和警告信息)
make > /dev/null 这样,正常的信息被重定向输出到/dev/null,错误和警告信息会输出到标准错误设备(standard error,相对于标准输入/输出设备来说).
- C++输出错误信息perror、strerror以及全局变量errno
头文件:#include<stdio.h>函数:perror.strerror,全局变量:errno.使用方法: FILE *fp; if((fp = fopen("test.t ...
- html加载与脚本运行中,由于html未完全加载而导致脚本找不到dom元素无法执行事件
问题: 如题,就是说alert后出现一个对话框,我没有点关闭,其他js文件或html会被加载吗,我遇到一个问题就是在页面加载时调用一个div的click事件,却没有被执行,但是在调用事件前面加上ale ...
随机推荐
- rocketmq双主发送消息 SLAVE_NOT_AVAILABLE 状态
RocketMQ最佳实践之Producer 投递状态 发送消息时,将得到包含SendStatus的SendResult.首先,我们假设消息的isWaitStoreMsgOK = true(默认是tru ...
- sql语句查询知识点
LEFT JOIN 关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行 INNER JOIN INNER JOIN 关键字在表中存在至少一个匹 ...
- Redis(三)内存模型
本文转载自编程迷思,原文链接 深入学习Redis(1):Redis内存模型 前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可 ...
- Intellij IDEA 2018.2.2 SpringBoot热启动 (Maven)
一.IDEA 工具配置 1. 打开IDEA 设置界面,选择编译,按图打勾. 2 . 然后 Shift+Ctrl+Alt+/,选择Registry 3 . compiler.automake.allow ...
- Maven 高级应用
Maven 的高级应用主要体现在 ==依赖==,==聚合==,==继承== * 依赖 就是在当前项目的pom.xml 总引入依赖的坐标 最最经常用到的 <dependencies> < ...
- #leetcode刷题之路21-合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例:输入:1->2->4, 1->3->4输出:1->1->2-&g ...
- 20181031noip模拟赛T2
思路: 这道题是个图论抽象的题目…… 考场上想到了没写对…… 我们发现,f函数转移的方式有两种,要么是代价10的+1,要么是代价1的乘一个质因数 那么我们就可以将这个抽象为一张图 每个i向每个i+1连 ...
- shell习题第3题:统计内存大小
[题目要求] 写一个脚本计算一下linux系统所有进程占用内存的大小的和 [核心要点] ps命令用法 for循环 加法运算 [脚本] #!/bin/bash for n in `ps aux | gr ...
- less.js插件监听
<script>less.watch();</script> 在不手动刷新/重新加载页面会自动监听less的变化,页面做出相应的变化 . 写在这两行后面就好 了 <lin ...
- PHP单例模式理解
话不多说,先上代码 <?php class User{ /* * 1.创建一个存放对象的私有化静态变量 * 2.私有化克隆方法 * 3.私有化构造方法 * 4.创建实例化对象的唯一入口 * * ...