簡體   English   中英

Java 異常命名約定

[英]Java Exception Naming Conventions

在 Java 中,使用“ Illegal ”(如在IllegalArgumentException )與“無效”(如在javax.activity.InvalidActivityException )之間是否存在語義差異?

在賦值過程中,編寫IllegalArgumentException的子類來表示一系列無法​​標記的輸入字符變得很有用,我想知道約定是否說使用InvalidTokenExceptionIllegalTokenException

到目前為止我能找到的唯一區別是java.lang似乎更喜歡“非法”,而javax.*更喜歡“無效”。 但是,還有java.security.InvalidParameterExceptionIllegalArgumentException的子類。

您可以合法使用 API,但仍然有無效數據; 這都是語義。

javax.activity.InvalidActivityException是從java.rmi.RemoteException繼承的,您可能不想要這種依賴性。 另見Javadoc

編輯 Invalid 和 Illegal 是同義詞,它在語義上沒有區別,只是上面提到的技術問題。

編輯:來自 Postgres 文檔第 45.3.14 節。 要避免的棘手詞:

非法的 “非法”代表違法,其余為“無效”。 更好的是,說明為什么它無效。

AFAIK,IllegalArgumentException 僅應在您想要發出不正確使用 API 方法調用的信號時使用。 您所描述的似乎是 API 使用不當的情況,因此我認為 IllegalArgumentException 將是更好的選擇。

暫無
暫無

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

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