학교 프로젝트의 경우 파일에서 입력을 읽고 입력에서 발견 된 일부 데이터를 나타내는 막 대형 차트를 만드는 프로그램을 만들었습니다. 입력은 한 줄씩 읽고 막대 그래프는 각 줄마다 업데이트됩니다. 읽은 모든 행 ("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();
}
더 콘솔 오류 및 프로그램 코드를 게시 할 예정 내가 다시 실행할 때 예를 들어,이 얻을. 내 프로그램은 대학 자바 라이브러리의 메소드를 사용한다. 영어가 아닌 에러 메시지는 메소드에 뿌리가있다. 코드에 익숙하지 않다.
프로그램에서 예외가 발생하면 *** 무엇인가 ***가 잘못되었습니다. 예외가 발생하는 이유를 이해하려면 프로그램을 디버깅하십시오. – fvu
글쎄, ui.staafdiagram.StaafDiagramPanel.berekenKleur (StaafDiagramPanel.java:62)는 어떻게 생겼습니까? –