如果此id没有行,您应该如何处理异常?调用代码应该如何处理这个
def function(id)
mysql_conn = MySQLdb.connect(..)
cursor = mysql_conn.cursor()
cursor.execute("""select val from fooo where id = %s""", (id))
row = cursor.fetchone()
return row[0]
答案 0 :(得分:1)
每当我发现自己只拿一行时,我总是喜欢使用以下内容(尽管不是性能最佳)。
cursor.execute("SELECT * FROM foo;")
for row in cursor:
return row
# No row handling behind the loop.
return "No rows found"
当循环的第一次迭代运行时,这会有效地返回。只有在结果集中至少有1
行时才会发生这种情况。否则将运行后面的代码 for
循环。
您可以引发自定义异常,或者返回一个特殊值,例如None
,让调用函数很好地知道没有行。