【问题标题】:Catching exceptions/errors捕获异常/错误
【发布时间】:2015-06-11 13:53:08
【问题描述】:

我是 Python 的初学者,希望得到您的详细建议。

所以我在下面为一个脚本创建了这个循环,该脚本具有第一个输入“gene_name”,从 .csv 文件中读取。如何编写代码来捕捉“gene_name”为无的情况,即gene_name = row.strip() 在该行中没有任何内容。

我对创建自定义异常感到非常困惑(不确定我是否正确使用了那个词),主要是关于如何填充 try-except 事物的一般模式。

谢谢!

if __name__ == '__main__':
  with open('gene_list.csv', 'rU') as f:
    reader = csv.reader(f)
    for row in reader: 
        gene_name = row.strip()
        probes_dict = get_probes_from_genes(gene_name) 
        expression_values, well_ids, well_coordinates, donor_names =     get_expression_values_from_probe_ids(probes_dict.keys()) #moving on
        print get_mni_coordinates_from_wells(well_ids)

【问题讨论】:

    标签: python loops csv exception main


    【解决方案1】:

    要创建自己的异常,您需要创建一个继承自 Exception 的类。我无法从您的代码中看出您期望在哪里知道有一些条件失败,但这给出了一般模式

    class GeneNameException(Exception):
        pass
    
    try:
       ...
       if negative_condition:
           raise GeneNameException()
       ...
    except GeneNameException as e:
       <clean_up>
    

    【讨论】:

    • 嗨@achampion,该行是 .csv 文件中的“gene_name = row.strip()”,该行中有一个空白,它试图获取其gene_name。我知道一般模式,但我不知道如何编写“negative_condition”部分来捕捉否定条件,即 .csv 文件行中的空白。
    • 如果没有len(row) == 0的字段,则行是字段列表
    猜你喜欢
    • 2014-03-21
    • 2010-12-14
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    相关资源
    最近更新 更多