簡體   English   中英

我的錯誤處理代碼嘗試/預期代碼給我錯誤“在使用 try 和 except 語句賦值之前引用的局部變量”

[英]My error handling code try/expect code giving me error "local variable referenced before assignment with try and except statement"

我在這里添加了這段代碼,用於錯誤處理

try:
    music = session.query(Music).filter_by(Assetid=id).one()
    music.firstname = new_AssetName
    music.lastname = new_category
    music.DOB = new_borrower
    music.experience = new_status
    music.experience = new_value
    session.commit()
except Exception as e:
   message = "Error updating player:" + e.toString()  
finally:
    return template('success.tpl', message=message)

它不斷給我錯誤

UnboundLocalError: local variable 'message' referenced before assignment

我的解決方案是讓 message 成為一個全局變量,如下所示:

except Exception as e:
   global message
   message = "Error updating player:" + e.toString() 

但這只是給我一個錯誤,說消息未定義。 我對如何解決這個問題很迷茫,任何幫助都會很棒

消息變量未在您的try塊中定義。 這意味着當您的代碼到達finally塊時,如果執行沒有引發異常,則消息變量將未定義,因此引發UnboundLocalError異常。

要解決這個問題,您可以簡單地執行以下操作:

try:
    music = session.query(Music).filter_by(Assetid=id).one()
    music.firstname = new_AssetName
    music.lastname = new_category
    music.DOB = new_borrower
    music.experience = new_status
    music.experience = new_value
    session.commit()
    message = "Successfully updated player"

except Exception as e:
    message = f"Error updating player: {e}"

finally:
    return template("success.tpl", message=message)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM