【问题标题】:Try...catch statements exercise in JavaJava 中的 Try...catch 语句练习
【发布时间】:2015-07-20 19:56:14
【问题描述】:

Java 新手在这里,我正在做一个练习,试图通过使用尽可能少的 try...catch 语句来捕获抛出的异常。当我编译代码时,我收到了IllegalArgumentException 错误并且不知道如何使用 try...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);

【问题讨论】:

  • 我在您的代码中没有看到您甚至尝试添加 try/catch 语句的任何地方。您是否阅读过文档或查看过任何示例?你具体有什么不明白的?
  • 你说得对,我还没有。这是我在添加 try/catch 语句以使其正确编译的行方面的困惑。
  • SO 不是为了“教我如何做基本的事情”,对不起
  • 每个人都从某个地方开始,包括你。我只是想了解如何将其纳入此练习。
  • 你说的很对,但是SO不是问这些问题的地方

标签: java try-catch illegalargumentexception


【解决方案1】:
try{
  //Code that can potentially throw an exception
} catch (IllegalArgumentException e){
  //Code to run if exception is throw
}

异常分配给变量e,该变量具有可以调用的某些方法。

【讨论】:

  • 谢谢,我了解 try 和 catch 的作用,但我不确定本练习的哪些行需要 try/catch 语句。
  • @MJW 您需要找出您使用或使用的哪些方法会引发该异常。浏览您使用的 API 的 javadocs。我猜它是 Random 类方法
  • 那部分我忘了,是FunMethods类抛出的异常。
【解决方案2】:

好的,在public static void main(String[] args) { 下方,您应该有try {。然后,在 main 方法的末尾,你应该有} 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
    }

【讨论】:

  • 感谢您的帮助。
  • 不客气。如果这有效,请点击投票箭头下方的复选标记以标记这是正确的或有效。
猜你喜欢
  • 1970-01-01
  • 2012-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多