在if()和try-catch

时间:2016-09-18 10:14:41

标签: exception try-catch multiple-languages

例如,只有当这样的列不存在时才需要在表中创建列时应该使用什么?

我可以编写一个代码来检查列是否存在并且只是存在,然后才添加它,所以我可以通过将我的方法包装在try-catch中来检查它(如果有 - catch例外,如果不是 - 将添加该列)

结果将是相同的。

并且有很多例子,例如,你可以扫描存在的文件,然后只复制,你可以捕获异常。

哪种方法更有文化,或者更正确?

2 个答案:

答案 0 :(得分:3)

有趣的是,你的问题取决于你所谈论的编程语言。

在C,Java,C ++,C#等语言中,人们更喜欢“LBYL”(Look Before You Leap)模式;而像python这样的语言非常强调“EAFP”(要求宽恕比允许更容易)。

含义:在python中,你正在使用try / catch 很多(甚至“count for loop”实现为try / catch);而在C#,Java,C ++中你宁愿做if / else。

这些约定非常重要 - 大多数Cx语言程序员只是假设您不使用try / catch来模拟控制流。换句话说:您应该遵循该语言中的大多数其他开发人员将使用的范例。

答案 1 :(得分:1)

我认为没有“正确”的方式。无论哪种方式都有效,无论如何都能实现目标。但是对于干净的代码,我的(非常主观的)观点是异常应该只用作非常“文字”的东西,并表明发生了异常(或意外)的事情。因此,在大多数情况下,您只需使用异常就可以过度使用运行时。但是,如果您试图扫描文档并且总是希望有一定数量的列,那么可能是使用异常的正确方法,因为错误的列数就是:异常。