如果它是正整数值,我想返回传递给此方法的值。如果不是,我想引发异常,这是我在退出程序的主要方法中捕获的。
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块这一事实。有更好的方法吗?我当然想抛出自己的例外。
如果它是正整数值,我想返回传递给此方法的值。如果不是,我想引发异常,这是我在退出程序的主要方法中捕获的。私人...
我认为在同一方法中抛出第二种异常没有任何问题。它们是两个不同的原因,带有两个不同的消息。此外,无论如何,最多只能在对您的方法的一次调用中抛出它们。
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);
}
}