假设我需要这样的东西。(这段代码很大,但只是一个例子)。这段代码不是我的问题!这只是一个例子。我知道如何使用if else语句编写它。我正在考虑一个更复杂的背景!
int[] arraynums = new int[3] {1,2,3};
int Sample = 0;
try
{
Sample = arraynums[3];
}
catch
{
Sample=4;
}
在这里,我可以使用一种不会遇到错误的替代逻辑。但是如果我使用try catch块,我仍然可以减少代码。是否建议使用try catch块来解决逻辑?如果不是,为什么呢?
答案 0 :(得分:5)
由于以下原因,您不应该使用异常来实现业务逻辑(或流控制):
其他帖子中提供了相当多的资料:
关于它的整个维基:http://c2.com/cgi/wiki?DontUseExceptionsForFlowControl
答案 1 :(得分:3)
为什么不使用if语句?
if(arraynums.length > 3)
{
Sample = arraynums[3];
}
else
{
Sample = 4;
}
答案 2 :(得分:3)
我假设你的代码是相当人为的,因为很容易在没有例外的情况下重写它。运行时的异常相对昂贵。如果被滥用,它们可能会不必要地减慢您的代码速度。通常,您应该在允许抛出之前检查异常情况。
推荐阅读:
答案 3 :(得分:0)
就我个人而言,我只会使用try catch来处理错误,或者在您不确定该对象是否在运行时可用的情况下。
在您的代码中,最好将Sample = 4设置为默认值,并在将其设置为arraynums [3]之前进行检查。