2015-07-20 68 views
-5

Java新手在这里,我正在做一个练习,尽量使用尽可能少的try ... catch语句来捕获抛出的异常。当我编译代码时,我收到IllegalArgumentException错误,并不确定如何使用try ... catch语句解决此问题。尝试... Java中的catch语句练习

我看过教程,看了其他的例子,但由于这是一个新概念,我仍然不确定如何使用try ... catch来完成这个特定的练习。

public class Main extends Object { 

public static void main(String [] args) { 
    tryGetMax(); 
    tryRemove(); 

private static final void tryGetMax() { 
    int max = 0; 
    max = FunMethods.getMax((Integer[])null); 
    Integer[] numbers = new Integer[50]; 
    Random rand = new Random(); 
    for (int i = 0; i < 50; i++) { 
     numbers[i] = new Integer(rand.nextInt(500)); 
    } 
    numbers[32] = null; 
    max = FunMethods.getMax(numbers); 
    numbers[32] = new Integer(rand.nextInt(500)); 
    max = FunMethods.getMax(numbers); 
} 

运动的第二部分:

private static final void tryRemove() { 
    FunMethods.remove(null, 2); 
    Object[] someObjects = new Object[12]; 
    someObjects[0] = "a string!"; 
    someObjects[1] = new Integer(32); 
    someObjects[2] = new Float(42.5f); 
    someObjects[3] = "another string"; 
    for (int i = 4; i < someObjects.length; i++) { 
     someObjects[i] = String.valueOf(i); 
    } 
    FunMethods.remove(someObjects, 12); 
    someObjects = FunMethods.remove(someObjects, 3); 
+4

我没有看到你的代码,你甚至试图添加一个try/catch语句的任何地方。您是阅读文档还是查看任何示例?你明白了什么? – tnw

+0

你说得对,我还没有。这是我在添加try/catch语句以使其正确编译的行上存在混淆。 – MJW

+0

SO不适合“教我如何做基本的东西”,对不起 –

回答

0
try{ 
    //Code that can potentially throw an exception 
} catch (IllegalArgumentException e){ 
    //Code to run if exception is throw 
} 

异常被分配给变量e具有某些方法可能被调用。

+0

谢谢,我明白尝试和抓住什么,但我不确定这个练习的哪些行需要try/catch语句。 – MJW

+1

@MJW你需要找到你使用或使用哪些方法可以抛出异常。浏览你使用的API的javadoc。我在猜测它的Random类方法 – Kode

+0

我忘了那部分,它是FunMethods类抛出的异常。 – MJW

0

好吧,正确根据public static void main(String[] args) {你应该有try {。然后,在主要方法结束时,您应该有} catch (IllegalArgumentException e) {。在此之下,你应该有你的代码来捕捉这个异常,并且}

现在这个:

public static void main(String [] args) { 
    tryGetMax(); 
    tryRemove(); 

是这样的:

public static void main(String [] args) { 
    try { 
     tryGetMax(); 
     tryRemove(); 
    } catch(IllegalArgumentException e) { 
     //this code runs if e is thrown 
    } 
+0

谢谢你的帮助。 – MJW

+0

不客气。如果这个工作正常,请在投票箭头下点击复选标记以标记这是正确的或它工作正常。 –