处理正整数的异常

时间:2014-03-25 21:01:42

标签: java exception-handling try-catch

如果它是一个正整数值,我想返回传递给该方法的值。如果不是,我想抛出异常,我在主方法中捕获异常,然后退出程序。

 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.");
        }
    }

我不喜欢我在try块中抛出MyOwnExampleException然后再在catch块中投掷的事实。有更好的方法吗?我绝对想要抛出自己的例外。

2 个答案:

答案 0 :(得分:1)

我不认为在同一种方法中抛出你的第二种异常是没有错的。它们是两个不同的原因,有两个不同的消息。此外,无论如何,最多可以在一次调用方法中抛出其中一个。

答案 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);
    }
}