Try...catch:测试语句是否为真
Try... catch: test if statement is true
我想用 Try... Catch
方法测试我的小数加法是否小于 MAXVALUE
且大于 MINVALUE
。如果数字大于 MAXVALUE
或小于 MINVALUE
,则代码应抛出异常。
但是我的代码不起作用。
public static decimal Add(decimal number1, decimal number2)
{
decimal Add = number1 + number2;
try
{
Add > RESULT_MAXVALUE;
Add < RESULT_MINVALUE;
}
catch(Exception)
{
//Do Stuf
}
}
我不想使用 if...else!
这取决于您使用的语言,但约定是 try 块包含可以抛出异常的语句,抛出的异常由 try 之后的 catch() 块捕获。您需要明确抛出异常才能被捕获。
您似乎在使用 C#。考虑阅读 https://msdn.microsoft.com/en-us/library/0yd65esw.aspx 以获取有关 C# 中的 try-catch 语句的更多信息。
在您的案例中可能没有必要使用例外。考虑使用 if 语句,如下所示:
decimal result = a + b;
if ((result > MAX_VALUE) || (result < MIN_VALUE))
{
// Do stuff.
}
但为了更直接地回答您的问题,以下是使用例外情况的方法:
decimal result = a + b;
try
{
if ((result > MAX_VALUE) || (result < MIN_VALUE))
{
throw new System.ArithmeticException(); // Or make an exception type.
}
}
catch (System.ArithmeticException e)
{
// Do stuff.
}
或者您可能会在 Add 中抛出异常,但不会捕获它。然后调用者有责任处理异常,或者让程序崩溃。看起来像这样:
// Adds two numbers. Throws a System.ArithmeticException if the result
// is greater than MAX_VALUE or less than MIN_VALUE.
public static decimal Add(decimal a, decimal b)
{
decimal result = a + b;
if ((result > MAX_VALUE) || (result < MIN_VALUE))
{
throw new System.ArithmeticException(); // Or make an exception type.
}
}
如果调用者希望某些结果大于 MAX_VALUE 或小于 MIN_VALUE(或者,调用者无法捕获异常,程序会崩溃)。
我想用 Try... Catch
方法测试我的小数加法是否小于 MAXVALUE
且大于 MINVALUE
。如果数字大于 MAXVALUE
或小于 MINVALUE
,则代码应抛出异常。
但是我的代码不起作用。
public static decimal Add(decimal number1, decimal number2)
{
decimal Add = number1 + number2;
try
{
Add > RESULT_MAXVALUE;
Add < RESULT_MINVALUE;
}
catch(Exception)
{
//Do Stuf
}
}
我不想使用 if...else!
这取决于您使用的语言,但约定是 try 块包含可以抛出异常的语句,抛出的异常由 try 之后的 catch() 块捕获。您需要明确抛出异常才能被捕获。
您似乎在使用 C#。考虑阅读 https://msdn.microsoft.com/en-us/library/0yd65esw.aspx 以获取有关 C# 中的 try-catch 语句的更多信息。
在您的案例中可能没有必要使用例外。考虑使用 if 语句,如下所示:
decimal result = a + b;
if ((result > MAX_VALUE) || (result < MIN_VALUE))
{
// Do stuff.
}
但为了更直接地回答您的问题,以下是使用例外情况的方法:
decimal result = a + b;
try
{
if ((result > MAX_VALUE) || (result < MIN_VALUE))
{
throw new System.ArithmeticException(); // Or make an exception type.
}
}
catch (System.ArithmeticException e)
{
// Do stuff.
}
或者您可能会在 Add 中抛出异常,但不会捕获它。然后调用者有责任处理异常,或者让程序崩溃。看起来像这样:
// Adds two numbers. Throws a System.ArithmeticException if the result
// is greater than MAX_VALUE or less than MIN_VALUE.
public static decimal Add(decimal a, decimal b)
{
decimal result = a + b;
if ((result > MAX_VALUE) || (result < MIN_VALUE))
{
throw new System.ArithmeticException(); // Or make an exception type.
}
}
如果调用者希望某些结果大于 MAX_VALUE 或小于 MIN_VALUE(或者,调用者无法捕获异常,程序会崩溃)。