這裏是我的問題的描述:Python - 引發異常嗎?
我有任務採取了一堆表名,並把前綴在他們面前,就像這樣:
PREFIX = 'foo_';
prefixed_tablename = "".join([PREFIX, tablename[:27]])
(表名不能超過30個字符(一些Oracle DB限制),這就是爲什麼我只拿到前27個字符)。
現在,有時候這可能會導致表名重複(如果只有表名的最後3個字符不同)。
我可以實現一些奇特的算法來創建獨特的表名,但目前檢測重複名稱就足夠了。所以我考慮將它們存儲在一個集合中,並且如果創建一個前綴表名,請檢查該集以查看這樣的表名是否已經存在。
現在,對於真正問題:
如果重複檢測得到,我需要停止我的腳本執行,顯示了某種錯誤。在Java中,我只會引發異常,但我不知道這是否是Python中的首選方式。
我應該引發異常,還是隻打印出消息並退出?
如果你用''「.join([PREFIX,tablename])[:30]''也更好。這樣,如果你改變前綴的長度(除了@agf指出的31個字符的情況),它仍然可以工作。 – JasonFruit
也可能更好地做'name_limit = 30'然後'「」.join([PREFIX,tablename])[:name_limit]'所以後代不會懷疑30的意思,特別是如果你遷移到不同的數據庫後端沒有這個限制 –
@Alexander或只是適當地記錄它。 – agf