Java 如何切换if和else语句以尝试捕获

Java 如何切换if和else语句以尝试捕获,java,try-catch,Java,Try Catch,所以我做了这个程序,但是我必须改变if和else语句来尝试捕捉。 任何帮助都将不胜感激:) 代码如下: import java.awt.*; import java.applet.*; import java.awt.event.*; import java.util.*; public class ShowIndex extends Applet implements ActionListener { int [] number =new int[100]; Random r

所以我做了这个程序,但是我必须改变if和else语句来尝试捕捉。 任何帮助都将不胜感激:) 代码如下:

import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.util.*;   

public class ShowIndex extends Applet implements ActionListener

{  int [] number =new int[100];
   Random r= new Random();
   Label indexlabel = new Label(" index:");
   TextField indexfield = new TextField(10);

   Label valuelabel = new Label("value:");
   TextField valuefield = new TextField(10);

   Button showButton = new Button ("Show Element");
   public void init()
      { int i;
        for(i=0;i<100;i++)
          number[i]=r.nextInt(1000)+1;  // random number between 1 and 1000 
        add(indexlabel);
        add(indexfield);
        add(valuelabel);
        add(valuefield);
        add(showButton);

        showButton.addActionListener(this);
        valuefield.setEditable(false);

      }
   public void actionPerformed(ActionEvent e)     
      { String inputString;
        int num;
        inputString=indexfield.getText();
        num=Integer.parseInt(inputString);
        if(num>99 ||num<0)
          valuefield.setText("Outof Bound");
        else      
          valuefield.setText(number[num]+"");

      }
}
import java.awt.*;
导入java.applet.*;
导入java.awt.event.*;
导入java.util.*;
公共类ShowIndex扩展小程序实现ActionListener
{int[]number=新的int[100];
随机r=新随机();
标签indexlabel=新标签(“索引:”);
TextField indexfield=新的TextField(10);
标签值标签=新标签(“值:”);
TextField valuefield=新的TextField(10);
按钮显示按钮=新按钮(“显示元素”);
公共void init()
{int i;

对于(i=0;i99 | | numJava有一套很棒的教程


我建议浏览例外部分:(包括try/catch):

一种方法是重写您的
actionPerformed
函数:

public void actionPerformed(ActionEvent e) { 

    String inputString;
    int num;
    inputString=indexfield.getText();
    num=Integer.parseInt(inputString);

    try {
       valuefield.setText(number[num]+"");
    }
    catch (Exception e) {
       valuefield.setText("Outof Bound");
    }

    // old version
    /*
    if(num>99 ||num<0)
      valuefield.setText("Outof Bound");
    else      
      valuefield.setText(number[num]+"");
    */

  }
有点通用,我相信您可以改进它。

试试这个:

try{
    valueField.setText(number[num]+"");
}catch(ArrayIndexOutOfBoundsException e){
    valueField.setText("Out of bound");
}

不要使用异常处理作为流控制机制。保留if子句。

你是说“我必须”因为老师/老板让你这么做,或者因为你假设你必须这么做?是什么推动了这一变化?稍微想想基本目标可能表明根本没有必要进行改变。

你尝试了什么?你知道如何努力抓住工作吗?你有什么错误吗?一个更具体的问题告诉我们你有什么需要我不知道它是如何工作的……你能给我解释一下吗?你实际上必须使用
if
条件来确定你是否需要在这方面
抛出
。但更大的问题是你是否掌握了
try/catch
的东西你必须做什么?阅读以下内容:
try{
    valueField.setText(number[num]+"");
}catch(ArrayIndexOutOfBoundsException e){
    valueField.setText("Out of bound");
}