gpt4 book ai didi

java - 检查错误输出位于我的错误列表中

转载 作者:行者123 更新时间:2023-12-01 12:06:38 26 4
gpt4 key购买 nike

我有以下代码,用于记录使用我的工具在 cmd 中运行的每个命令后的所有错误。 (它运行p4 integrate命令,大约1000-1500/任务)

if (errorArrayList.size() > 0) {
LoggerSingleton.I.writeDebugInfoTimeStampedLog("[INFO-CMD] CommandExecuter.java -> runAndGetResults: errors happened while running the following command: [ " + commandResultBean.getCommand() + " ]");

for (int i = 0; i < errorArrayList.size(); i++) {
LoggerSingleton.I.writeDebugErrorTimeStampedLog(errorArrayList.get(i));
commandResultBean.addToCLI_Error(errorArrayList.get(i));
}

LoggerSingleton.I.writeDebugInfoTimeStampedLog("[INFO-CMD] CommandExecuter.java -> runAndGetResults: Listing errors of command [" + commandResultBean.getCommand() + "] finished");
}

我现在正在开发的功能是检查我收到的错误,以及它是否在预定义的错误列表中(无关紧要的错误列表,实际上不是真正的错误,例如 “所有修订版本都已集成”)不做任何其他事情,但是当它是“真正的”错误时,也将其写入其他日志文件(因为这些调试日志对于工具的用户来说太长了,它为开发人员提供了更多可能性)。

问题是,最好的方法是什么?

  • 我想避免大幅减速。我有很多命令,但错误数量少于命令,但这并不罕见,我在一项任务中遇到 700-800 个“不相关”错误。
  • 我将使用另一个类来制作 I/O 部分,如果我们捕获“真正的”错误,那么延长运行时间并不是问题。
  • 列表是不变的,如果只能通过编码修改也没关系。

目前我不知道要使用什么类型(2-3 single String s、ListArray ...)。我应该使用什么类型?我从来没有使用过enum以前用过 Java,现在应该用 Java 吗?

我猜是forforeacherrorArrayList.get(i).contains(<myVariable>)在方法中是检查的唯一选择。如果我错了,有更好的方法吗?

编辑

如果我有 ArrayList<String>knownErrors有不相关的错误(只能定义它的一部分),我使用下面的代码会比上面写的方法有更好的性能吗?另外,如果我只有部分字符串,我可以使用它吗?怎么办?

if (errorArrayList.removeAll(knownErrors) {
//do the logging and stuff
}

最佳答案

ArrayList本身有一个方法removeAll(Collection c),它删除与输入集合元素匹配的所有元素。下面的程序清楚地表明了这一点。因此,如果您在 arraylist 中要跳过已知错误并将其传递给removeall 方法,它将删除已知错误,而 errorArrayList 将仅包含新错误。 enter image description here

关于java - 检查错误输出位于我的错误列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27543631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com