Java 如何切换if和else语句以尝试捕获
所以我做了这个程序,但是我必须改变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
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");
}