处理异常或返回值的更好方法

弗拉兹曼
def foo(directory):
    filename = '' #dont like this
    all_files = [get from somewhere]
    try:
        if 'foo' in all_files:
            filename = 'foo'

        else:
            filename = all_files[0]
     except ValueError:
          logger.warning('Directory is empty')
     finally:
             return os.path.join(directory, filename)

所以,这就是我到目前为止所拥有的..有没有更好的方法来解决这个问题..我们要么返回一个值,要么记录一个错误。

这是比较容易来乞求宽恕,而不是允许。您可以对filename变量使用条件赋值,如果这是错误的,则可以变量周围发出警告。

根据您真正要完成的工作,可以使用的长度all_files来查看目录是否真正为空。

def foo(directory):
    all_files = [get from somewhere] or []

    if len(all_files) == 0:
        logger.warning('Directory is empty')
        return ''
    else:
        filename = 'foo' if 'foo' in all_files else all_files[0]       
        return os.path.join(directory, filename)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

处理异常或返回值的更好方法

来自分类Dev

返回值方法中的异常处理

来自分类Dev

返回值的方法不能传递给异常处理程序

来自分类Dev

处理异常的更好方法

来自分类Dev

Python异常处理:检查函数的返回值

来自分类Dev

使用Python Selenium WebDriver处理异常的返回值

来自分类Dev

如果方法抛出异常,则从方法返回值

来自分类Dev

抛出异常或返回值

来自分类Dev

更好/更Python化的方式来处理具有多个返回值的函数的结果

来自分类Dev

处理CoCreateInstance返回值

来自分类Dev

处理CoCreateInstance返回值

来自分类Dev

从方法返回值

来自分类Dev

从方法返回值

来自分类Dev

如何处理在异常情况下返回引用的成员函数的返回值?

来自分类Dev

Hapi处理程序方法未返回值

来自分类Dev

这是从信号处理程序返回值的可靠方法吗?

来自分类Dev

更好的实践:从void方法打印或从方法返回值并从方法调用者打印

来自分类Dev

C ++:如何使用异常处理从超出范围的数组中返回值?

来自分类Dev

如何返回值并引发异常

来自分类Dev

返回值比返回局部变量更好吗?

来自分类Dev

Python方法返回值

来自分类Dev

方法的返回值地址

来自分类Dev

获得方法的返回值

来自分类Dev

从完成处理程序返回值

来自分类Dev

如何处理AsyncTask的返回值

来自分类Dev

Python:处理返回值较大的情况

来自分类Dev

处理JavaScript中的多个返回值

来自分类Dev

从完成处理程序返回值-Swift

来自分类Dev

用于启动任务并获取其返回值的更好模式