質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

162閲覧

Java Swing 例外がコンソールに表示されない

kaera_kimura

総合スコア1

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2024/04/03 14:54

実現したいこと

SwingでGUIアプリを作ってます。

発生している問題・分からないこと

あるクラスがコンストラクタでString[]を受け取るのですが、コンストラクタ内の処理でインデックス外の要素を指定しているにもかかわらずEclipseのコンソールには出力されず、そこで処理が終了してしまします。
デバッグモードで該当の処理でブレークし、ステップアウトするとこんな画面が出ます。
イメージ説明

エラーメッセージ

error

1エラーメッセージが表示されないから困ってます。

該当のソースコード

Java

1 //コンストラクタ 2 public SaleContent(String[] sale) { 3 4 5 this.date = sale[0]; 6 7 try { 8 this.genbaCode = Integer.parseInt(sale[1]); 9 } catch (NumberFormatException e) { 10 this.genbaCode = 0; 11 } 12 13 this.consName = sale[2]; 14 this.billingNum = Integer.parseInt(sale[3]); 15 try { 16 this.productCode = Integer.parseInt(sale[5]); 17 } catch (NumberFormatException e) { 18 this.productCode = 0; 19 } 20 21 this.productName = sale[6]; 22 this.vol = sale[7]; 23 this.unit = Integer.parseInt(sale[8]); 24 this.total = Integer.parseInt(sale[9]); 25 26      ↓がインデックス外を参照してます。 27 this.warimashi = sale[10].split(" "); 28 }

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

試しにtra-catchで囲んでみるとcatchされました。
Swingを使わず、単にmainメソッドでインスタンス化するとOutOfBoundsExceptionがコンソールに表示されました。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lovam-nm

2024/04/03 16:02

saleの要素の数が11なのかは確認していますか?
jimbe

2024/04/03 17:08

使用している環境や各種バージョン等を追記してください。 また、 eclipse のコンソールとは何のことか、例外が表示されないという問題が再現できる最小の実行可能(断片で無い)コードと実行手順を教えて下さい。
guest

回答2

0

自己解決

ご回答いただきありがとうございます。エラーが出力されず少し不便ではありましたが、質問のクラスとは殆ど関係ない他クラスの開発を進めていたら正常に出力されるようになってました。せっかくご回答いただいたのに後味の悪い結果ですいません。

投稿2024/04/04 12:37

kaera_kimura

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こちらの環境では以下のコードを「javaアプリケーション」として実行すると、コンソールタブに例外が表示されました。
Windows10
Eclipse: 2021-09 (4.21.0)
Java: 17

java

1import javax.swing.JFrame; 2import javax.swing.SwingUtilities; 3 4public class SaleContent extends JFrame { 5 public static void main(String[] args) { 6 SwingUtilities.invokeLater(() -> new SaleContent(new String[]{})); 7 } 8 9 private String[] warimashi; 10 SaleContent(String[] sale) { 11 warimashi = sale[10].split(" "); 12 } 13}
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: Index 10 out of bounds for length 0 at teratail_java.q_t69vofv7ac1g5w.SaleContent.<init>(SaleContent.java:13) at teratail_java.q_t69vofv7ac1g5w.SaleContent.lambda$0(SaleContent.java:8) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:771) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:741) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Eclipse の表示状態
Eclipse で実行時、コンソールタブに例外表示

投稿2024/04/03 17:27

jimbe

総合スコア12659

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問