2015-07-20 112 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

不客氣。如果這個工作正常,請在投票箭頭下點擊複選標記以標記這是正確的或它工作正常。 –