如果它是一个正整数值,我想返回传递给该方法的值。如果不是,我想抛出异常,我在主方法中捕获异常,然后退出程序。
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块中投掷的事实。有更好的方法吗?我绝对想要抛出自己的例外。
答案 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);
}
}