From baf179481eba499f9ddf03501b34a3c78d994915 Mon Sep 17 00:00:00 2001 From: Steven Hsu Date: Mon, 24 Oct 2022 21:03:25 +0800 Subject: [PATCH] Update tutorial/errors.po (#335) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update tutorial/errors.po Update with cpython 3.11 * Apply suggestions from code review Apply "接受" and "直接造成的結果" from the code review. Co-authored-by: Wei-Hsiang (Matt) Wang Co-authored-by: Wei-Hsiang (Matt) Wang --- tutorial/errors.po | 66 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 59 insertions(+), 7 deletions(-) diff --git a/tutorial/errors.po b/tutorial/errors.po index b471efd743..748ab16928 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -4,15 +4,15 @@ # # Translators: # jerrychen , 2016 -# Steven Hsu , 2021 +# Steven Hsu , 2021-2022 # Matt Wang , 2021 msgid "" msgstr "" "Project-Id-Version: Python 3.11\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-10-15 20:43+0000\n" -"PO-Revision-Date: 2022-10-16 05:53+0800\n" -"Last-Translator: Matt Wang \n" +"PO-Revision-Date: 2022-10-24 14:54+0800\n" +"Last-Translator: Steven Hsu \n" "Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-" "tw)\n" "Language: zh_TW\n" @@ -20,7 +20,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 3.1.1\n" +"X-Generator: Poedit 3.2\n" #: ../../tutorial/errors.rst:5 msgid "Errors and Exceptions" @@ -265,6 +265,11 @@ msgid "" "exit` and :exc:`KeyboardInterrupt` which is raised when a user wishes to " "interrupt the program." msgstr "" +":exc:`BaseException` 是由全部的例外所共用的 base class。它的 subclass(子類" +"別)之一,:exc:`Exception`,則是所有非嚴重例外 (non-fatal exception) 的 base " +"class。有些例外不是 :exc:`Exception` 的 subclass,而它們通常不會被處理,因為" +"它們是用來指示程式應該終止。這些例外包括了由 :meth:`sys.exit` 所引發的 :exc:" +"`SystemExit`,以及當使用者想要中斷程式時所引發的 :exc:`KeyboardInterrupt`。" #: ../../tutorial/errors.rst:188 msgid "" @@ -273,6 +278,9 @@ msgid "" "exceptions that we intend to handle, and to allow any unexpected exceptions " "to propagate on." msgstr "" +":exc:`Exception` 可以用作通配符 (wildcard) 來捕獲(幾乎)所有的例外。然而,比" +"較好的做法是盡可能具體地說明我們打算處理的例外類型,並容許任何非預期例外的傳" +"遞 (propagate)。" #: ../../tutorial/errors.rst:193 msgid "" @@ -280,6 +288,10 @@ msgid "" "exception and then re-raise it (allowing a caller to handle the exception as " "well)::" msgstr "" +"處理 :exc:`Exception` 的最常見模式,是先將該例外印出或記錄,然後再重新引發它" +"(也允許一個呼叫函式 (caller) 來處理該例外):\n" +"\n" +"::" #: ../../tutorial/errors.rst:211 msgid "" @@ -338,7 +350,7 @@ msgid "" "instantiated by calling its constructor with no arguments::" msgstr "" ":keyword:`raise` 唯一的引數就是要引發的例外。該引數必須是一個例外實例或例外 " -"class(衍生自 :class:`BaseException` 的 class,例如 :class:`Exception` 與他" +"class(衍生自 :class:`BaseException` 的 class,例如 :class:`Exception` 與它" "的 subclass)。如果一個例外 class 被傳遞,它會不含引數地呼叫它的建構函式 " "(constructor) ,使它被自動建立實例 (implicitly instantiated):\n" "\n" @@ -365,12 +377,20 @@ msgid "" "will have the exception being handled attached to it and included in the " "error message::" msgstr "" +"如果在 :keyword:`except` 段落內部發生了一個未處理的例外,則它會讓這個將要被處" +"理的例外附加在後,並將其包含在錯誤訊息中:\n" +"\n" +"::" #: ../../tutorial/errors.rst:306 msgid "" "To indicate that an exception is a direct consequence of another, the :" "keyword:`raise` statement allows an optional :keyword:`from` clause::" msgstr "" +"為了表明一個例外是另一個例外直接造成的結果,:keyword:`raise` 陳述式容許一個選擇性" +"的 :keyword:`from` 子句:\n" +"\n" +"::" #: ../../tutorial/errors.rst:312 msgid "This can be useful when you are transforming exceptions. For example::" @@ -384,6 +404,9 @@ msgid "" "It also allows disabling automatic exception chaining using the ``from " "None`` idiom::" msgstr "" +"它也容許使用慣用語 ``from None`` 來停用自動例外鏈接:\n" +"\n" +"::" #: ../../tutorial/errors.rst:345 msgid "" @@ -583,7 +606,7 @@ msgstr "" #: ../../tutorial/errors.rst:496 msgid "Raising and Handling Multiple Unrelated Exceptions" -msgstr "" +msgstr "引發及處理多個無關的例外" #: ../../tutorial/errors.rst:498 msgid "" @@ -593,6 +616,9 @@ msgid "" "cases where it is desirable to continue execution and collect multiple " "errors rather than raise the first exception." msgstr "" +"在某些情況下,必須回報已經發生的多個例外。在並行框架 (concurrency framework) " +"中經常會出現這種情況,當平行的 (parallel) 某些任務可能已經失效,但還有其他用" +"例 (use case) 希望能繼續執行並收集多個例外,而不是只有引發第一個例外時。" #: ../../tutorial/errors.rst:504 msgid "" @@ -600,6 +626,11 @@ msgid "" "that they can be raised together. It is an exception itself, so it can be " "caught like any other exception. ::" msgstr "" +"內建的 :exc:`ExceptionGroup` 會包裝一個例外實例 (exception instance) 的 " +"list(串列),使得它們可以一起被引發。由於它本身就是一個例外,因此它也可以像" +"任何其他例外一樣被捕獲。\n" +"\n" +"::" #: ../../tutorial/errors.rst:530 msgid "" @@ -609,6 +640,12 @@ msgid "" "extracts from the group exceptions of a certain type while letting all other " "exceptions propagate to other clauses and eventually to be reraised. ::" msgstr "" +"若使用 ``except*`` 代替 ``except``,我們可以選擇性地只處理該群組中與特定類型" +"匹配的例外。在以下範例中,展示了一個巢狀的例外群組 (exception group),每個 " +"``except*`` 子句分別從該群組中提取一個特定類型的例外,同時讓所有其他的例外都" +"傳遞到其他子句,最後再被重新引發。\n" +"\n" +"::" #: ../../tutorial/errors.rst:564 msgid "" @@ -617,10 +654,14 @@ msgid "" "that have already been raised and caught by the program, along the following " "pattern::" msgstr "" +"請注意,被巢套在例外群組中的例外必須是實例,而不是類型。這是因為在實務上,這" +"些例外通常是已經被程式引發並捕獲的例外,類似以下的模式:\n" +"\n" +"::" #: ../../tutorial/errors.rst:582 msgid "Enriching Exceptions with Notes" -msgstr "" +msgstr "用註解使例外更詳細" #: ../../tutorial/errors.rst:584 msgid "" @@ -632,6 +673,13 @@ msgid "" "standard traceback rendering includes all notes, in the order they were " "added, after the exception. ::" msgstr "" +"當一個例外是為了被引發而建立時,它通常會伴隨著一些資訊被初始化,這些資訊描述" +"了當下發生的錯誤。在某些情況,在例外被捕獲之後添加資訊會很有用。為此,例外具" +"有一個 ``add_note(note)`` method(方法),它可以接受一個字串並將其添加到例外" +"的註解清單中。標準的回溯呈現會在例外之後列出所有的註解,並按照其被添加的順序" +"來排列。\n" +"\n" +"::" #: ../../tutorial/errors.rst:605 msgid "" @@ -639,6 +687,10 @@ msgid "" "to add context information for the individual errors. In the following each " "exception in the group has a note indicating when this error has occurred. ::" msgstr "" +"例如,在將例外收集到例外群組中時,我們可能希望為各個錯誤添加一些上下文的資" +"訊。在以下範例中,群組中的每個例外都有一條註解,指示此錯誤是在何時發生。\n" +"\n" +"::" #~ msgid "" #~ "All exceptions inherit from :exc:`BaseException`, and so it can be used "