2013-12-09 101 views
-2
if (upperCaseString.equals("X") || upperCaseString.equals("Y") || upperCaseString.equals("MT")) { 
     return upperCaseString; 
     } else { 
     Integer integerValueOfString = Integer.parseInt(upperCaseString); 
     if (integerValueOfString >= 1 || integerValueOfString <= 22) { 
      return integerValueOfString.toString(); 
     } else { 

     } 
     } 

我想在最後一個else塊中拋出異常。我試圖如何在這種情況下在if else語句中拋出異常

throw new Exception system.out.println("Not valid range"); 

,但沒有工作我也嘗試了嘗試捕捉,但我不知道抓什麼,因爲它只是要到別的

+0

'拋出新的異常( 「信息」);' – Maroun

+1

的異常不是一塊代碼。我建議你首先閱讀http://docs.oracle.com/javase/tutorial/essential/exceptions/ –

回答

4
} else { 
    throw new Exception("my Message"); 
} 

你也需要加入拋出聲明方法簽名,如果您使用例如一個檢查的異常。

在這種情況下,您也可以拋出未經檢查的異常(例外情況是RuntimeException或其擴展),但不需要在方法簽名中添加throws

瞭解更多關於例外:How to throws exceptions

+0

http://docs.oracle.com/javase/tutorial/essential/exceptions/throwing.html – Maroun

+0

..只有它是一個檢查的異常。 –

+0

@MattBall新增:) – nachokk

0

你是做了錯誤的方式,你正試圖寫
throw new Exception system.out.println("Not valid range");

if (upperCaseString.equals("X") || upperCaseString.equals("Y") || upperCaseString.equals("MT")) 
    { 
     upperCaseString = upperCaseString; 
    } 
    else 
    { 
     Integer integerValueOfString; 
     try 
     { 
      return Integer.parseInt(upperCaseString); 
     } 
     catch (NumberFormatException e1) //Here exception is caught and your custom exception is thrown as per your requirement 
     { 
      throw new Exception("Not valid range"); 
     } 
     if (integerValueOfString >= 1 || integerValueOfString <= 22) 
     { 
      return integerValueOfString.toString(); 
     } 
     else 
     { 
      throw new Exception("Not valid range"); 
     } 
    } 
相關問題