java算法错误,java – 处理算法中的问题/错误的推荐方法

您提到的第一种方法是更加面向C,其中您有函数产生各种整数来表示函数在执行过程中是如何公平的.

虽然这有用(在我看来)引入了额外的问题,开发人员需要通过其他文档或其他开发人员代码来了解为什么返回特定值.

在Java中,据我所知,走路的方法总是在出现问题时抛出异常(即使你预计它会出错).使用异常的明显优势是代码更具可读性,只需查看方法签名我就知道您的方法可能导致哪些潜在问题.这将允许我更快地编码,因为我不需要深入了解您自己的文档或代码只是为了看看您的方法的行为是什么(虽然我可能需要挖掘文档/代码,看看我是否能找到解决方案为什么你的代码抛出异常).

此外,由于Java没有元组的实现来返回错误代码和值,您需要创建自己的,这可能会影响代码的可用性和可读性,在我看来,这是您应该避免的.

编辑:

What if my intention isn’t to go back into my code and find where the

error was thrown to fix it. just wanted to be notified that an error

happened, in a way I can easily handle the situation in some way.

Rather than me going into the code and fixing it manually, I want to

be able to trigger another set of code (like a handleError() method),

which has an algorithm that will even things out. (whichever algorithm

I may choose). Will handling with Exceptions give me any advantage in

this case?

是的,因为异常处理将允许您处理异常事件,所以在您的代码中,您可以拥有:

while(true) {

try {

accessValue(i++);

}catch(InvalidAccessException e) {

//Execute algorithms here

}

}

正如您所说,正在调试问题时,有一个堆栈跟踪很有用,因为它提供了程序崩溃时调用哪些方法的信息.话虽如此,它们并不是使用例外的唯一好处(如上所述).

使用返回值时我看到的另一个潜在问题是不同的开发人员在同一个函数上工作.所以你可以拥有一个开发人员设计的东西:

function int doSomething()

{

//if it worked, yield 0

//else yield some number between 1 and 10

}

然后另一个开发人员认为错误应该有负数并扩展上述方法,

function int doSomething()

{

//if it worked, yield 0

//else yield some number between 1 and 10

//something else went wrong, return -1

}

上面的意思是你需要遍历调用doSomething()的所有其他函数,并看到它们现在处理返回值为负的情况.这很麻烦并且也容易出错.

编辑2:

我希望我明白你的观点.当你返回true / false时我看到了这个问题:

假设这个:

public boolean foo(arg1, arg2)

{

if(arg1 is invalid) return false;

if(arg2 is invalid) return false;

}

在上面的例子中,false是什么意思?这是否意味着arg1无效或arg2?如果您需要为不同的参数有效性触发不同的算法怎么办?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值