インデックスが範囲外のときにエラー メッセージを表示しようとしていますが、配列リストに要素がない場合でも、現在のコードでは適切なエラー メッセージが表示されません。
これは、例外を実装しようとしているセクションのコードブロックです。説明すると、make call メソッドは、配列要素に対応する番号である表示を取得し、正しいインデックスからの呼び出しを表示します。
public void makeCall()
{
Mobile phoneCall = (Mobile) gadgets.get(getDisplay());
phoneCall.PhoneCall(getPhoneNumber(), getDuration());
System.out.println();
}
public int getDisplay()
{
int gadgetDisplay = 0;
try
{
gadgetDisplay = Integer.parseInt(displayText.getText());
if (gadgetDisplay< 0)
{
JOptionPane.showMessageDialog
(frame, "Please enter a positive Display");
}
}
catch(NumberFormatException exception)
{
JOptionPane.showMessageDialog
(frame, "Please enter a positive Display");
}
catch(IndexOutOfBoundsException exception)
{
JOptionPane.showMessageDialog
(frame, "Gadget is not listed");
}
return gadgetDisplay;
}