1212# Yi Cao <[email protected] >, 20201313# jsgang <[email protected] >, 20201414# Freesand Leo <[email protected] >, 202115+ # Jiuh-star <[email protected] >, 20211516#
1617#, fuzzy
1718msgid ""
@@ -20,7 +21,7 @@ msgstr ""
2021"Report-Msgid-Bugs-To : \n "
2122"POT-Creation-Date : 2021-01-01 05:02+0000\n "
2223"PO-Revision-Date : 2017-02-16 17:35+0000\n "
23- "Last-Translator : Freesand Leo <yuqinju@163 .com>, 2021\n "
24+ "Last-Translator : Jiuh-star <jiuh.star@gmail .com>, 2021\n "
2425"Language-Team : Chinese (China) (https://www.transifex.com/python-doc/teams/5390/zh_CN/)\n "
2526"MIME-Version : 1.0\n "
2627"Content-Type : text/plain; charset=UTF-8\n "
@@ -45,6 +46,11 @@ msgid ""
4546":c:func:`PyArg_\\ *` functions return ``1`` for success and ``0`` for "
4647"failure)."
4748msgstr ""
49+ "本章描述的函数将让你处理和触发 Python 异常。了解一些 Python 异常处理的基本知识是很重要的。 它的工作原理有点像 POSIX 的 "
50+ ":c:data:`errno` 变量:(每个线程)有一个全局指示器显示最近发生的错误。 大多数 C API "
51+ "函数不会在成功时理会它,但会在失败时设置它来指示错误的原因。 多数 C API 函数也返回一个错误指示器,如果它们应该返回一个指针,通常返回 "
52+ "``NULL``,如果返回一个整数,则返回 ``-1`` (例外: :c:func:`PyArg_\\ *` 函数成功时返回 ``1`` 而失败时返回 "
53+ "``0``)。"
4854
4955#: ../../c-api/exceptions.rst:20
5056msgid ""
@@ -54,6 +60,8 @@ msgid ""
5460"forbidden, for example you can't have a non-``NULL`` traceback if the "
5561"exception type is ``NULL``)."
5662msgstr ""
63+ "具体地说,错误指示器由三个对象指针组成:异常的类型,异常的值,和回溯对象。如果没有错误被设置,这些指针都可以是 "
64+ "``NULL``(尽管一些组合使禁止的,例如,如果异常类型是 ``NULL``,你不能有一个非 ``NULL`` 的回溯)。"
5765
5866#: ../../c-api/exceptions.rst:26
5967msgid ""
@@ -67,6 +75,8 @@ msgid ""
6775"error is not handled or carefully propagated, additional calls into the "
6876"Python/C API may not behave as intended and may fail in mysterious ways."
6977msgstr ""
78+ "当一个函数由于它调用的某个函数失败而必须失败时,通常不会设置错误指示器;它调用的那个函数已经设置了它。而它负责处理错误和清理异常,或在清除其拥有的所有资源后返回(如对象应用或内存分配)。如果不准备处理异常,则*不*应该正常地继续。如果是由于一个错误返回,那么一定要向调用者表明已经设置了错误。如果错误没有得到处理或小心传播,对"
79+ " Python/C API的其它调用可能不会有预期的行为,并且可能会以某种神秘的方式失败。"
7080
7181#: ../../c-api/exceptions.rst:37
7282msgid ""
@@ -75,16 +85,18 @@ msgid ""
7585"still propagating), while the latter returns an exception after it is caught"
7686" (and has therefore stopped propagating)."
7787msgstr ""
88+ "错误指示器 **不是** :func:`sys.exc_info()` "
89+ "的执行结果。前者对应尚未捕获的异常(异常还在传播),而后者在捕获异常后返回这个异常(异常已经停止传播)。"
7890
7991#: ../../c-api/exceptions.rst:44
8092msgid "Printing and clearing"
81- msgstr ""
93+ msgstr "打印和清理 "
8294
8395#: ../../c-api/exceptions.rst:49
8496msgid ""
8597"Clear the error indicator. If the error indicator is not set, there is no "
8698"effect."
87- msgstr ""
99+ msgstr "清除错误指示器。如果没有设置错误指示器,则不会有作用。 "
88100
89101#: ../../c-api/exceptions.rst:55
90102msgid ""
@@ -93,6 +105,8 @@ msgid ""
93105"printed and the Python process will exit with the error code specified by "
94106"the ``SystemExit`` instance."
95107msgstr ""
108+ "将标准回溯打印到 ``sys.stderr`` 并清除错误指示器。**除非** 错误是 "
109+ "``SystemExit``,这种情况下不会打印回溯进程,且会退出 Python 进程,并显示 ``SystemExit`` 实例指定的错误代码。"
96110
97111#: ../../c-api/exceptions.rst:60
98112msgid ""
@@ -106,6 +120,8 @@ msgid ""
106120":data:`sys.last_value` and :data:`sys.last_traceback` will be set to the "
107121"type, value and traceback of the printed exception, respectively."
108122msgstr ""
123+ "如果 *set_sys_last_vars* 非零,则变量 :data:`sys.last_type`,:data:`sys.last_value` 和"
124+ " :data:`sys.last_traceback` 将分别设置为打印异常的类型,值和回溯。"
109125
110126#: ../../c-api/exceptions.rst:70
111127msgid "Alias for ``PyErr_PrintEx(1)``."
@@ -115,7 +131,7 @@ msgstr "``PyErr_PrintEx(1)`` 的别名。"
115131msgid ""
116132"Call :func:`sys.unraisablehook` using the current exception and *obj* "
117133"argument."
118- msgstr ""
134+ msgstr "使用当前异常和 *obj* 参数调用 :func:`sys.unraisablehook`。 "
119135
120136#: ../../c-api/exceptions.rst:78
121137msgid ""
@@ -124,17 +140,19 @@ msgid ""
124140"raise the exception. It is used, for example, when an exception occurs in "
125141"an :meth:`__del__` method."
126142msgstr ""
143+ "当设置了异常,但解释器不可能实际地触发异常时,这个实用函数向 ``sys.stderr`` 打印一个警告信息。例如,当 :meth:`__del__` "
144+ "方法中发生异常时使用这个函数。"
127145
128146#: ../../c-api/exceptions.rst:83
129147msgid ""
130148"The function is called with a single argument *obj* that identifies the "
131149"context in which the unraisable exception occurred. If possible, the repr of"
132150" *obj* will be printed in the warning message."
133- msgstr ""
151+ msgstr "该函数使用单个参数 *obj* 进行调用,该参数标识发生不可触发异常的上下文。如果可能,*obj* 的报告将打印在警告消息中。 "
134152
135153#: ../../c-api/exceptions.rst:87
136154msgid "An exception must be set when calling this function."
137- msgstr ""
155+ msgstr "调用此函数时必须设置一个异常。 "
138156
139157#: ../../c-api/exceptions.rst:91
140158msgid "Raising exceptions"
@@ -145,7 +163,7 @@ msgid ""
145163"These functions help you set the current thread's error indicator. For "
146164"convenience, some of these functions will always return a ``NULL`` pointer "
147165"for use in a ``return`` statement."
148- msgstr ""
166+ msgstr "这些函数可帮助你设置当前线程的错误指示器。为了方便起见,一些函数将始终返回 ``NULL`` 指针,以便用于 ``return`` 语句。 "
149167
150168#: ../../c-api/exceptions.rst:100
151169msgid ""
@@ -155,12 +173,14 @@ msgid ""
155173"count. The second argument is an error message; it is decoded from "
156174"``'utf-8``'."
157175msgstr ""
176+ "这是设置错误指示器最常用的方法。第一个参数指定异常类型;它通常是标准异常之一,e.g. "
177+ ":c:data:`PyExc_RuntimeError`。你不务要增加它的引用计数。第二个参数是错误信息,它解码自 ``'utf-8'``。"
158178
159179#: ../../c-api/exceptions.rst:108
160180msgid ""
161181"This function is similar to :c:func:`PyErr_SetString` but lets you specify "
162182"an arbitrary Python object for the \" value\" of the exception."
163- msgstr ""
183+ msgstr "此函数类似于 :c:func:`PyErr_SetString`,但是允许你为异常的“值”指定任意一个 Python 对象。 "
164184
165185#: ../../c-api/exceptions.rst:114
166186msgid ""
@@ -169,6 +189,9 @@ msgid ""
169189"help format the error message; they have the same meaning and values as in "
170190":c:func:`PyUnicode_FromFormat`. *format* is an ASCII-encoded string."
171191msgstr ""
192+ "这个函数设置了一个错误指示器并且返回了 ``NULL``,*exception* 应当是一个 Python 中的异常类。*format* "
193+ "和随后的形参会帮助格式化这个错误的信息;它们与 :c:func:`PyUnicode_FromFormat` 有着相同的含义和值。*format* "
194+ "是一个ASCII编码的字符串。"
172195
173196#: ../../c-api/exceptions.rst:123
174197msgid ""
@@ -178,7 +201,7 @@ msgstr ""
178201
179202#: ../../c-api/exceptions.rst:131
180203msgid "This is a shorthand for ``PyErr_SetObject(type, Py_None)``."
181- msgstr ""
204+ msgstr "这是 ``PyErr_SetObject(type, Py_None)`` 的简写。 "
182205
183206#: ../../c-api/exceptions.rst:136
184207msgid ""
@@ -400,7 +423,7 @@ msgstr ""
400423
401424#: ../../c-api/exceptions.rst:367
402425msgid "Querying the error indicator"
403- msgstr ""
426+ msgstr "查询错误指示器 "
404427
405428#: ../../c-api/exceptions.rst:371
406429msgid ""
@@ -657,7 +680,7 @@ msgstr ""
657680
658681#: ../../c-api/exceptions.rst:624
659682msgid "Unicode Exception Objects"
660- msgstr ""
683+ msgstr "Unicode 异常对象 "
661684
662685#: ../../c-api/exceptions.rst:626
663686msgid ""
@@ -737,7 +760,7 @@ msgstr ""
737760
738761#: ../../c-api/exceptions.rst:700
739762msgid "Return the *reason* attribute of the given exception object."
740- msgstr ""
763+ msgstr "返回给定异常对象的 *reason* 属性 "
741764
742765#: ../../c-api/exceptions.rst:706
743766msgid ""
0 commit comments