簡體   English   中英

Python - 是否引發異常?

[英]Python - Raising an exception or not?

這是我的問題的描述:

我的任務是獲取一堆表名並在它們前面放一個前綴,如下所示:

PREFIX = 'foo_';

prefixed_tablename = "".join([PREFIX, tablename[:27]])

(表名不得超過 30 個字符(某些 Oracle DB 限制),這就是為什么我只取前 27 個字符的原因)。

現在,有時這會導致重復的表名(如果只有表名的最后 3 個字符不同)。

我可以實現一些奇特的算法來創建唯一的表名,但目前檢測重復名稱就足夠了。 所以我考慮將它們存儲在一個集合中,如果創建一個帶前綴的表名,請檢查該集合是否已經存在這樣的表名。

現在,對於真正的問題:

如果檢測到重復,我需要停止執行腳本,顯示某種錯誤。 在 Java 中,我只想提出一個例外,但我不知道這是否是 Python 中的首選方式。

我應該引發異常,還是只打印一條消息並退出?

27 + 4 = 31。

為什么不使用異常? 如果您以后不想退出,而是捕獲異常並在外部 scope 處對其進行處理,那么與使用sys.exit相比,您需要進行的更改更少。

Python 中的異常實際上比 Java 更自由地使用(例如,迭代器在迭代停止時在內部使用它們來發出信號)。 如果這確實是一個“異常”情況——也就是說,如果這不會經常發生,這是理所當然的——那么這是一個引發異常的完美情況。

我會說你應該提出一個例外。 如果您使用消息構造異常,則腳本將根據需要退出消息,並且如果您想更改處理錯誤的方式,則引發異常可能會更容易。 此外,如果您曾經將此代碼用作更大程序的一部分,您將能夠決定如何在更大的程序中單獨處理錯誤。

暫無
暫無

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

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