<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## Chapter 10. Exceptions(異常) ### Item 74: Document all exceptions thrown by each method(為每個方法記錄會拋出的所有異常) A description of the exceptions thrown by a method is an important part of the documentation required to use the method properly. Therefore, it is critically important that you take the time to carefully document all of the exceptions thrown by each method (Item 56). 描述方法拋出的異常,是該方法文檔的重要部分。因此,花時間仔細記錄每個方法拋出的所有異常是非常重要的([Item-56](/Chapter-8/Chapter-8-Item-56-Write-doc-comments-for-all-exposed-API-elements.md))。 **Always declare checked exceptions individually, and document precisely the conditions under which each one is thrown** using the Javadoc @throws tag. Don’t take the shortcut of declaring that a method throws some superclass of multiple exception classes that it can throw. As an extreme example, don’t declare that a public method throws Exception or, worse, throws Throwable. In addition to denying any guidance to the method’s user concerning the exceptions it is capable of throwing, such a declaration greatly hinders the use of the method because it effectively obscures any other exception that may be thrown in the same context. One exception to this advice is the main method, which can safely be declared to throw Exception because it is called only by VM. **始終單獨聲明 checked 異常,并使用 Javadoc 的 `@throw` 標記精確記錄每次拋出異常的條件**。如果一個方法拋出多個異常,不要使用快捷方式聲明這些異常的超類。作為一個極端的例子,即不要在公共方法聲明 `throws Exception`,或者更糟,甚至 `throws Throwable`。除了不能向方法的用戶提供會拋出哪些異常的任何消息之外,這樣的聲明還極大地阻礙了方法的使用,因為它掩蓋了在相同上下文中可能拋出的任何其他異常。這個建議的一個特例是 main 方法,它可以安全地聲明 `throw Exception`,因為它只被 VM 調用。 While the language does not require programmers to declare the unchecked exceptions that a method is capable of throwing, it is wise to document them as carefully as the checked exceptions. Unchecked exceptions generally represent programming errors (Item 70), and familiarizing programmers with all of the errors they can make helps them avoid making these errors. A well-documented list of the unchecked exceptions that a method can throw effectively describes the preconditions for its successful execution. It is essential that every public method’s documentation describe its preconditions (Item 56), and documenting its unchecked exceptions is the best way to satisfy this requirement. 雖然 Java 不要求程序員為方法聲明會拋出的 unchecked 異常,但明智的做法是,應該像 checked 異常一樣仔細地記錄它們。unchecked 異常通常表示編程錯誤([Item-70](/Chapter-10/Chapter-10-Item-70-Use-checked-exceptions-for-recoverable-conditions-and-runtime-exceptions-for-programming-errors.md)),讓程序員熟悉他們可能犯的所有錯誤可以幫助他們避免犯這些錯誤。將方法可以拋出的 unchecked 異常形成良好文檔,可以有效描述方法成功執行的先決條件。每個公共方法的文檔都必須描述它的先決條件([Item-56](/Chapter-8/Chapter-8-Item-56-Write-doc-comments-for-all-exposed-API-elements.md)),記錄它的 unchecked 異常是滿足這個需求的最佳方法。 It is particularly important that methods in interfaces document the unchecked exceptions they may throw. This documentation forms a part of the interface’s general contract and enables common behavior among multiple implementations of the interface. 特別重要的是,接口中的方法要記錄它們可能拋出的 unchecked 異常。此文檔構成接口通用約定的一部分,并指明接口的多個實現之間應該遵守的公共行為。 **Use the Javadoc @throws tag to document each exception that a method can throw, but do not use the throws keyword on unchecked exceptions.** It is important that programmers using your API are aware of which exceptions are checked and which are unchecked because the programmers’ responsibilities differ in these two cases. The documentation generated by the Javadoc @throws tag without a corresponding throws clause in the method declaration provides a strong visual cue to the programmer that an exception is unchecked. **使用 Javadoc 的 `@throw` 標記記錄方法會拋出的每個異常,但是不要對 unchecked 異常使用 throws 關鍵字。** 讓使用你的 API 的程序員知道哪些異常是 checked 異常,哪些是 unchecked 異常是很重要的,因為程序員在這兩種情況下的職責是不同的。Javadoc 的 `@throw` 標記生成的文檔在方法聲明中沒有對應的 throws 子句,這向程序員提供了一個強烈的視覺提示,這是 unchecked 異常。 It should be noted that documenting all of the unchecked exceptions that each method can throw is an ideal, not always achievable in the real world. When a class undergoes revision, it is not a violation of source or binary compatibility if an exported method is modified to throw additional unchecked exceptions. Suppose a class invokes a method from another, independently written class. The authors of the former class may carefully document all of the unchecked exceptions that each method throws, but if the latter class is revised to throw additional unchecked exceptions, it is quite likely that the former class (which has not undergone revision) will propagate the new unchecked exceptions even though it does not document them. 應該注意的是,記錄每個方法會拋出的所有 unchecked 異常是理想的,但在實際中并不總是可以做到。當類進行修訂時,如果將導出的方法修改,使其拋出額外的 unchecked 異常,這并不違反源代碼或二進制兼容性。假設一個類 A 從另一個獨立的類 B 中調用一個方法。A 類的作者可能會仔細記錄每個方法拋出的 unchecked 異常,如果 B 類被修改了,使其拋出額外的 unchecked 異常,很可能 A 類(未經修改)將傳播新的 unchecked 異常,盡管它沒有在文檔中聲明。 **If an exception is thrown by many methods in a class for the same reason, you can document the exception in the class’s documentation comment** rather than documenting it individually for each method. A common example is NullPointerException. It is fine for a class’s documentation comment to say, “All methods in this class throw a NullPointerException if a null object reference is passed in any parameter,” or words to that effect. **如果一個類中的許多方法都因為相同的原因拋出異常,你可以在類的文檔注釋中記錄異常,** 而不是為每個方法單獨記錄異常。一個常見的例子是 NullPointerException。類的文檔注釋可以這樣描述:「如果在任何參數中傳遞了 null 對象引用,該類中的所有方法都會拋出 NullPointerException」,或者類似意思的話。 In summary, document every exception that can be thrown by each method that you write. This is true for unchecked as well as checked exceptions, and for abstract as well as concrete methods. This documentation should take the form of @throws tags in doc comments. Declare each checked exception individually in a method’s throws clause, but do not declare unchecked exceptions. If you fail to document the exceptions that your methods can throw, it will be difficult or impossible for others to make effective use of your classes and interfaces. 總之,記錄你所編寫的每個方法可能引發的每個異常。對于 unchecked 異常、checked 異常、抽象方法、實例方法都是如此。應該在文檔注釋中采用 `@throw` 標記的形式。在方法的 throws 子句中分別聲明每個 checked 異常,但不要聲明 unchecked 異常。如果你不記錄方法可能拋出的異常,其他人將很難或不可能有效地使用你的類和接口。 --- **[Back to contents of the chapter(返回章節目錄)](/Chapter-10/Chapter-10-Introduction.md)** - **Previous Item(上一條目):[Item 73: Throw exceptions appropriate to the abstraction(拋出能用抽象解釋的異常)](/Chapter-10/Chapter-10-Item-73-Throw-exceptions-appropriate-to-the-abstraction.md)** - **Next Item(下一條目):[Item 75: Include failure capture information in detail messages(異常詳細消息中應包含捕獲失敗的信息)](/Chapter-10/Chapter-10-Item-75-Include-failure-capture-information-in-detail-messages.md)**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看