gpt4 book ai didi

java - 抛出的错误消息不一致,原因未知。希望所有错误消息消失

转载 作者:行者123 更新时间:2023-12-01 18:40:22 24 4
gpt4 key购买 nike

对于一个学校项目,我编写了一个程序,该程序从文件中读取输入并构造一个条形图来表示在输入中找到的一些数据。逐行读取输入,并更新每行的条形图。对于已读取的每一行,("line %d\n", lineNumber) 都会打印到控制台。所有这些功能都已实现,并且有效。但是,程序向控制台抛出异常,我希望它们消失。以下是控制台的摘录:

line 1
line 2
line 3
Exception in thread "AWT-EventQueue-0" line 4
line 5
java.lang.IllegalArgumentException: Color parameter outside of expected range: Red
at java.awt.Color.testColorValueRange(Color.java:310)
at java.awt.Color.<init>(Color.java:395)
at java.awt.Color.<init>(Color.java:369)
at ui.staafdiagram.StaafDiagramPanel.berekenKleur(StaafDiagramPanel.java:62)
at ui.staafdiagram.StaafDiagramPanel.tekenStaaf(StaafDiagramPanel.java:106)
at ui.staafdiagram.StaafDiagramPanel.paintComponent(StaafDiagramPanel.java:162)
at javax.swing.JComponent.paint(JComponent.java:1045)
at javax.swing.JComponent.paintChildren(JComponent.java:878)
at javax.swing.JComponent.paint(JComponent.java:1054)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
at javax.swing.JComponent.paintChildren(JComponent.java:878)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5219)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295)
at javax.swing.RepaintManager.paint(RepaintManager.java:1236)
at javax.swing.JComponent.paint(JComponent.java:1031)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
at java.awt.Container.paint(Container.java:1967)
line at java.awt.Window.paint(Window.java:3877)
at javax.swing.RepaintManager$3.run(RepaintManager.java:807)
at javax.swing.RepaintManager$3.run(RepaintManager.java:784)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:757)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706)
at javax.swing.RepaintManager.access$1000(RepaintManager.java:62)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1651)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)6
//more errors.... PS Note the '6' at the end of this block of code. Error message thrown from within out.printf("line %d\n", lineNumber)?

出于某种我无法理解的原因,每次使用相同的输入和相同的代码运行程序时,都会抛出不同的错误消息。例如,当我再次运行时,我得到这个:

    line 1
line 2
line 3
line 4
line 5
line Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Color parameter outside of expected range: Red
6
line at java.awt.Color.testColorValueRange(Color.java:310)
//more errors...

这是我的代码摘录:

private void processInput() {

Scanner input;
Scanner lineScanner = null; // initialization

String line;
input = new Scanner(System.in);
int lineNumber = 0;
while (input.hasNextLine()) {
lineNumber++;
out.printf("line %d\n", lineNumber);

line = input.nextLine();
lineScanner = new Scanner(line);
if (line.length() < MIN_OK_LINE_LENGTH)
continue;
incrementBar(gameResult(lineScanner));
barChart.showChanges();
}
input.close();
lineScanner.close();
}

如果需要,将发布更多控制台错误和程序代码。我的程序使用大学java库中的方法,任何非英语的错误消息都源于我不熟悉代码的方法。

最佳答案

错误消息表明调用 java.awt.Color 构造函数时使用的红色分量值超出了范围。查看 Color 的 javadoc,我们发现红色是一个 8 位值,即介于 0-255 之间。在代码中查找代表颜色的内容,并发现为什么它有时会给出(至少)超出此范围的红色颜色。如果某件事正在读取数据,或者随机生成颜色值,那么这就解释了为什么它不会在一致的时间发生。

请注意,该值可能是 int 或 float - 同样,查看 Color 的不同构造函数将告诉您预期的结果。我们不知道绿色和蓝色的颜色是否有效,只是红色无效。

关于java - 抛出的错误消息不一致,原因未知。希望所有错误消息消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20162880/

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