正整数处理异常

问题描述 投票:0回答:2

如果它是正整数值,我想返回传递给此方法的值。如果不是,我想引发异常,这是我在退出程序的主要方法中捕获的。

 private String posInteger(String input) {
        try {
            if (Integer.valueOf(input) >= 0) {
                return input;
            } else {
                throw new MyOwnExampleException("Error, number can't be negative.");
            }
        } catch (NumberFormatException e) {
            throw new MyOwnExampleException("Error, number must be an integervalue.");
        }
    }

我不喜欢将MyOwnExampleException放入try块,然后再将其放入catch块这一事实。有更好的方法吗?我当然想抛出自己的例外。

如果它是正整数值,我想返回传递给此方法的值。如果不是,我想引发异常,这是我在退出程序的主要方法中捕获的。私人...

java exception-handling try-catch
2个回答
1
投票

我认为在同一方法中抛出第二种异常没有任何问题。它们是两个不同的原因,带有两个不同的消息。此外,无论如何,最多只能在对您的方法的一次调用中抛出它们。


0
投票
import java.util.*;
class MyOwnExampleException extends Exception
{
    MyOwnExampleException(String s)
    {
        super(s);
    }
}
class himansh
{
    static private String posInteger(String input) throws MyOwnExampleException 
    {
        if (Integer.valueOf(input) >= 0)
            {
                return input;
            }
        else 
            {
                throw new MyOwnExampleException("Error, number can't be negative.");
            }
    }
    public static void main(String[] args)
    {
       String h;
       Scanner sc=new Scanner(System.in);
       String s=sc.next();
       try
       {
           h=himansh.posInteger(s);
       }
       catch(Exception e)
       {
           System.out.println(e.getMessage());
           return;
       }
       System.out.println(h);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.