-
-
Notifications
You must be signed in to change notification settings - Fork 54
Expand file tree
/
Copy patherrors.po
More file actions
437 lines (390 loc) · 23.9 KB
/
errors.po
File metadata and controls
437 lines (390 loc) · 23.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001-2017, Python Software Foundation
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: Python 3.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-12-25 10:27+0900\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Dong-gweon Oh <flowdas@gmail.com>\n"
"Language-Team: Korean (https://python.flowdas.com)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.6.0\n"
#: ../Doc/tutorial/errors.rst:5
msgid "Errors and Exceptions"
msgstr "에러와 예외"
#: ../Doc/tutorial/errors.rst:7
msgid ""
"Until now error messages haven't been more than mentioned, but if you "
"have tried out the examples you have probably seen some. There are (at "
"least) two distinguishable kinds of errors: *syntax errors* and "
"*exceptions*."
msgstr ""
"지금까지 에러 메시지가 언급되지는 않았지만, 예제들을 직접 해보았다면 아마도 몇몇 개를 보았을 것입니다. (적어도) 두 가지 "
"구별되는 에러들이 있습니다; *문법 에러* 와 *예외*."
#: ../Doc/tutorial/errors.rst:15
msgid "Syntax Errors"
msgstr "문법 에러"
#: ../Doc/tutorial/errors.rst:17
msgid ""
"Syntax errors, also known as parsing errors, are perhaps the most common "
"kind of complaint you get while you are still learning Python::"
msgstr ""
"문법 에러는, 파싱 에러라고도 알려져 있습니다, 아마도 여러분이 파이썬을 배우고 있는 동안에는 가장 자주 만나는 종류의 불평일 "
"것입니다::"
#: ../Doc/tutorial/errors.rst:26
msgid ""
"The parser repeats the offending line and displays a little 'arrow' "
"pointing at the earliest point in the line where the error was detected."
" The error is caused by (or at least detected at) the token *preceding* "
"the arrow: in the example, the error is detected at the function "
":func:`print`, since a colon (``':'``) is missing before it. File name "
"and line number are printed so you know where to look in case the input "
"came from a script."
msgstr ""
"파서는 문제가 되는 줄을 다시 보여주고 줄에서 에러가 감지된 가장 앞의 위치를 가리키는 작은 '화살표'를 표시합니다. 에러는 화살표"
" *앞에 오는* 토큰이 원인입니다 (또는 적어도 그곳에서 감지되었습니다): 이 예에서, 에러는 함수 :func:`print` 에서 "
"감지되었는데, 그 앞에 콜론 (``':'``) 이 빠져있기 때문입니다. 파일 이름과 줄 번호가 인쇄되어서, 입력이 스크립트로부터 올"
" 때 찾을 수 있도록 합니다."
#: ../Doc/tutorial/errors.rst:37
msgid "Exceptions"
msgstr "예외"
#: ../Doc/tutorial/errors.rst:39
msgid ""
"Even if a statement or expression is syntactically correct, it may cause "
"an error when an attempt is made to execute it. Errors detected during "
"execution are called *exceptions* and are not unconditionally fatal: you "
"will soon learn how to handle them in Python programs. Most exceptions "
"are not handled by programs, however, and result in error messages as "
"shown here::"
msgstr ""
"문장이나 표현식이 문법적으로 올바르다 할지라도, 실행하려고 하면 에러를 일으킬 수 있습니다. 실행 중에 감지되는 에러들을 *예외* "
"라고 부르고 무조건 치명적이지는 않습니다: 파이썬 프로그램에서 이것들을 어떻게 다루는지 곧 배우게 됩니다. 하지만 대부분의 예외는 "
"프로그램이 처리하지 않아서, 여기에서 볼 수 있듯이 에러 메시지를 만듭니다::"
#: ../Doc/tutorial/errors.rst:58
msgid ""
"The last line of the error message indicates what happened. Exceptions "
"come in different types, and the type is printed as part of the message: "
"the types in the example are :exc:`ZeroDivisionError`, :exc:`NameError` "
"and :exc:`TypeError`. The string printed as the exception type is the "
"name of the built-in exception that occurred. This is true for all "
"built-in exceptions, but need not be true for user-defined exceptions "
"(although it is a useful convention). Standard exception names are built-"
"in identifiers (not reserved keywords)."
msgstr ""
"에러 메시지의 마지막 줄은 어떤 일이 일어났는지 알려줍니다. 예외는 여러 형으로 나타나고, 형이 메시지 일부로 인쇄됩니다: 이 "
"예에서의 형은 :exc:`ZeroDivisionError`, :exc:`NameError`, :exc:`TypeError` 입니다."
" 예외 형으로 인쇄된 문자열은 발생한 내장 예외의 이름입니다. 이것은 모든 내장 예외들의 경우는 항상 참이지만, 사용자 정의 예외의"
" 경우는 (편리한 관례임에도 불구하고) 꼭 그럴 필요는 없습니다. 표준 예외 이름은 내장 식별자입니다 (예약 키워드가 아닙니다)."
#: ../Doc/tutorial/errors.rst:66
msgid ""
"The rest of the line provides detail based on the type of exception and "
"what caused it."
msgstr "줄의 나머지 부분은 예외의 형과 원인에 기반을 둔 상세 명세를 제공합니다."
#: ../Doc/tutorial/errors.rst:69
msgid ""
"The preceding part of the error message shows the context where the "
"exception happened, in the form of a stack traceback. In general it "
"contains a stack traceback listing source lines; however, it will not "
"display lines read from standard input."
msgstr ""
"에러 메시지의 앞부분은 스택 트레이스의 형태로 예외가 일어난 위치의 문맥을 보여줍니다. 일반적으로 소스의 줄들을 나열하는 스택 "
"트레이스를 포함하고 있습니다; 하지만, 표준 입력에서 읽어 들인 줄들은 표시하지 않습니다."
#: ../Doc/tutorial/errors.rst:74
msgid ":ref:`bltin-exceptions` lists the built-in exceptions and their meanings."
msgstr ":ref:`bltin-exceptions` 는 내장 예외들과 그 들의 의미를 나열하고 있습니다."
#: ../Doc/tutorial/errors.rst:80
msgid "Handling Exceptions"
msgstr "예외 처리하기"
#: ../Doc/tutorial/errors.rst:82
msgid ""
"It is possible to write programs that handle selected exceptions. Look at"
" the following example, which asks the user for input until a valid "
"integer has been entered, but allows the user to interrupt the program "
"(using :kbd:`Control-C` or whatever the operating system supports); note "
"that a user-generated interruption is signalled by raising the "
":exc:`KeyboardInterrupt` exception. ::"
msgstr ""
"선택한 예외를 처리하는 프로그램을 만드는 것이 가능합니다. 다음 예를 보면, 올바를 정수가 입력될 때까지 사용자에게 입력을 "
"요청하지만, 사용자가 프로그램을 인터럽트 하는 것을 허용합니다 (:kbd:`Control-C` 나 그 외에 운영 체제가 지원하는 "
"것을 사용해서); 사용자가 만든 인터럽트는 :exc:`KeyboardInterrupt` 예외를 일으키는 형태로 나타남에 유의하세요."
" ::"
#: ../Doc/tutorial/errors.rst:96
msgid "The :keyword:`try` statement works as follows."
msgstr ":keyword:`try` 문은 다음과 같이 동작합니다."
#: ../Doc/tutorial/errors.rst:98
msgid ""
"First, the *try clause* (the statement(s) between the :keyword:`try` and "
":keyword:`except` keywords) is executed."
msgstr "먼저, *try 절* (:keyword:`try` 와 :keyword:`except` 사이의 문장들) 이 실행됩니다."
#: ../Doc/tutorial/errors.rst:101
msgid ""
"If no exception occurs, the *except clause* is skipped and execution of "
"the :keyword:`try` statement is finished."
msgstr "예외가 발생하지 않으면, *except 절* 을 건너뛰고 :keyword:`try` 문의 실행은 종료됩니다."
#: ../Doc/tutorial/errors.rst:104
msgid ""
"If an exception occurs during execution of the try clause, the rest of "
"the clause is skipped. Then if its type matches the exception named "
"after the :keyword:`except` keyword, the except clause is executed, and "
"then execution continues after the :keyword:`try` statement."
msgstr ""
"try 절을 실행하는 동안 예외가 발생하면, 절의 남은 부분들을 건너뜁니다. 그런 다음 형이 :keyword:`except` 키워드"
" 뒤에 오는 예외 이름과 매치되면, 그 except 절이 실행되고, 그런 다음 실행은 :keyword:`try` 문 뒤로 "
"이어집니다."
#: ../Doc/tutorial/errors.rst:109
msgid ""
"If an exception occurs which does not match the exception named in the "
"except clause, it is passed on to outer :keyword:`try` statements; if no "
"handler is found, it is an *unhandled exception* and execution stops with"
" a message as shown above."
msgstr ""
"except 절에 있는 예외 이름들과 매치되지 않는 예외가 발생하면, 외부에 있는 :keyword:`try` 문으로 전달됩니다; "
"처리기가 발견되지 않으면, *처리되지 않은 예외* 이고 위에서 보인 것과 같은 메시지를 출력하면서 실행이 멈춥니다."
#: ../Doc/tutorial/errors.rst:114
msgid ""
"A :keyword:`try` statement may have more than one except clause, to "
"specify handlers for different exceptions. At most one handler will be "
"executed. Handlers only handle exceptions that occur in the corresponding"
" try clause, not in other handlers of the same :keyword:`!try` statement."
" An except clause may name multiple exceptions as a parenthesized tuple,"
" for example::"
msgstr ""
"각기 다른 예외에 대한 처리기를 지정하기 위해, :keyword:`try` 문은 하나 이상의 except 절을 가질 수 있습니다. "
"최대 하나의 처리기가 실행됩니다. 처리기는 해당하는 try 절에서 발생한 예외만 처리할 뿐 같은 :keyword:`!try` 문의 "
"다른 처리기가 일으킨 예외를 처리하지는 않습니다. except 절은 괄호가 있는 튜플로 여러 개의 예외를 지정할 수 있습니다, 예를"
" 들어::"
#: ../Doc/tutorial/errors.rst:123
msgid ""
"A class in an :keyword:`except` clause is compatible with an exception if"
" it is the same class or a base class thereof (but not the other way "
"around --- an except clause listing a derived class is not compatible "
"with a base class). For example, the following code will print B, C, D "
"in that order::"
msgstr ""
":keyword:`except` 절에 있는 클래스는 예외와 같은 클래스이거나 베이스 클래스일 때 매치됩니다 (하지만 다른 방식으로는"
" 매치되지 않습니다 --- 자식 클래스를 나열한 except 절은 베이스 클래스와 매치되지 않습니다). 예를 들어, 다음과 같은 "
"코드는 B, C, D를 그 순서대로 인쇄합니다::"
#: ../Doc/tutorial/errors.rst:147
msgid ""
"Note that if the except clauses were reversed (with ``except B`` first), "
"it would have printed B, B, B --- the first matching except clause is "
"triggered."
msgstr ""
"except 절이 뒤집히면 (``except B`` 가 처음에 오도록), B, B, B를 인쇄하게 됨에 주의하세요 --- 처음으로 "
"매치되는 절이 실행됩니다."
#: ../Doc/tutorial/errors.rst:150
msgid ""
"The last except clause may omit the exception name(s), to serve as a "
"wildcard. Use this with extreme caution, since it is easy to mask a real "
"programming error in this way! It can also be used to print an error "
"message and then re-raise the exception (allowing a caller to handle the "
"exception as well)::"
msgstr ""
"마지막 except 절은 예외 이름을 생략할 수 있는데, 와일드카드 역할을 합니다. 이것을 사용할 때는 극도의 주의를 필요로 "
"합니다. 이런 식으로 실제 프로그래밍 에러를 가리기 쉽기 때문입니다! 에러 메시지를 인쇄한 후에 예외를 다시 일으키는데 사용될 수도"
" 있습니다 (호출자도 예외를 처리할 수 있도록)::"
#: ../Doc/tutorial/errors.rst:169
msgid ""
"The :keyword:`try` ... :keyword:`except` statement has an optional *else "
"clause*, which, when present, must follow all except clauses. It is "
"useful for code that must be executed if the try clause does not raise an"
" exception. For example::"
msgstr ""
":keyword:`try` ... :keyword:`except` 문은 선택적인 *else 절* 을 갖는데, 있다면 모든 "
"except 절 뒤에와야 합니다. try 절이 예외를 일으키지 않을 때 실행되어야만 하는 코드에 유용합니다. 예를 들어::"
#: ../Doc/tutorial/errors.rst:183
msgid ""
"The use of the :keyword:`!else` clause is better than adding additional "
"code to the :keyword:`try` clause because it avoids accidentally catching"
" an exception that wasn't raised by the code being protected by the "
":keyword:`!try` ... :keyword:`!except` statement."
msgstr ""
":keyword:`!else` 절의 사용이 :keyword:`try` 절에 코드를 추가하는 것보다 좋은데, :keyword:`!try`"
" ... :keyword:`!except` 문에 의해 보호되고 있는 코드가 일으키지 않은 예외를 우연히 잡게 되는 것을 방지하기 "
"때문입니다."
#: ../Doc/tutorial/errors.rst:188
msgid ""
"When an exception occurs, it may have an associated value, also known as "
"the exception's *argument*. The presence and type of the argument depend "
"on the exception type."
msgstr ""
"예외가 발생할 때, 연관된 값을 가질 수 있는데, 예외의 *인자* 라고도 알려져 있습니다. 인자의 존재와 형은 예외 형에 "
"의존적입니다."
#: ../Doc/tutorial/errors.rst:192
msgid ""
"The except clause may specify a variable after the exception name. The "
"variable is bound to an exception instance with the arguments stored in "
"``instance.args``. For convenience, the exception instance defines "
":meth:`__str__` so the arguments can be printed directly without having "
"to reference ``.args``. One may also instantiate an exception first "
"before raising it and add any attributes to it as desired. ::"
msgstr ""
"except 절은 예외 이름 뒤에 변수를 지정할 수 있습니다. 변수는 인자들이 ``instance.args`` 에 저장된 예외 "
"인스턴스에 연결됩니다. 편의를 위해, 예외 인스턴스는 :meth:`__str__` 를 정의해서, ``.args`` 를 참조하지 "
"않고도 인자들을 직접 인쇄할 수 있습니다. 예외를 일으키기 전에 인스턴스를 먼저 만들고 필요한 어트리뷰트들을 추가할 수도 있습니다."
" ::"
#: ../Doc/tutorial/errors.rst:216
msgid ""
"If an exception has arguments, they are printed as the last part "
"('detail') of the message for unhandled exceptions."
msgstr "예외가 인자를 가지면, 처리되지 않은 예외 메시지의 마지막 부분('상세 명세')에 인쇄됩니다."
#: ../Doc/tutorial/errors.rst:219
msgid ""
"Exception handlers don't just handle exceptions if they occur immediately"
" in the try clause, but also if they occur inside functions that are "
"called (even indirectly) in the try clause. For example::"
msgstr ""
"예외 처리기는 단지 try 절에 직접 등장하는 예외뿐만 아니라, try 절에서 (간접적으로라도) 호출되는 내부 함수들에서 발생하는 "
"예외들도 처리합니다. 예를 들어::"
#: ../Doc/tutorial/errors.rst:237
msgid "Raising Exceptions"
msgstr "예외 일으키기"
#: ../Doc/tutorial/errors.rst:239
msgid ""
"The :keyword:`raise` statement allows the programmer to force a specified"
" exception to occur. For example::"
msgstr ":keyword:`raise` 문은 프로그래머가 지정한 예외가 발생하도록 강제할 수 있게 합니다. 예를 들어::"
#: ../Doc/tutorial/errors.rst:247
msgid ""
"The sole argument to :keyword:`raise` indicates the exception to be "
"raised. This must be either an exception instance or an exception class "
"(a class that derives from :class:`Exception`). If an exception class is"
" passed, it will be implicitly instantiated by calling its constructor "
"with no arguments::"
msgstr ""
":keyword:`raise` 에 제공하는 단일 인자는 발생시킬 예외를 가리킵니다. 예외 인스턴스이거나 예외 클래스 "
"(:class:`Exception` 를 계승하는 클래스) 이어야 합니다. 예외 클래스가 전달되면, 묵시적으로 인자 없이 생성자를 "
"호출해서 인스턴스를 만듭니다::"
#: ../Doc/tutorial/errors.rst:254
msgid ""
"If you need to determine whether an exception was raised but don't intend"
" to handle it, a simpler form of the :keyword:`raise` statement allows "
"you to re-raise the exception::"
msgstr ""
"만약 예외가 발생했는지는 알아야 하지만 처리하고 싶지는 않다면, 더 간단한 형태의 :keyword:`raise` 문이 그 예외를 "
"다시 일으킬 수 있게 합니다::"
#: ../Doc/tutorial/errors.rst:273
msgid "User-defined Exceptions"
msgstr "사용자 정의 예외"
#: ../Doc/tutorial/errors.rst:275
msgid ""
"Programs may name their own exceptions by creating a new exception class "
"(see :ref:`tut-classes` for more about Python classes). Exceptions "
"should typically be derived from the :exc:`Exception` class, either "
"directly or indirectly."
msgstr ""
"새 예외 클래스를 만듦으로써 프로그램은 자신의 예외에 이름을 붙일 수 있습니다 (파이썬 클래스에 대한 자세한 내용은 :ref"
":`tut-classes` 를 보세요). 예외는 보통 직접적으로나 간접적으로 :exc:`Exception` 클래스를 계승합니다."
#: ../Doc/tutorial/errors.rst:279
msgid ""
"Exception classes can be defined which do anything any other class can "
"do, but are usually kept simple, often only offering a number of "
"attributes that allow information about the error to be extracted by "
"handlers for the exception. When creating a module that can raise "
"several distinct errors, a common practice is to create a base class for "
"exceptions defined by that module, and subclass that to create specific "
"exception classes for different error conditions::"
msgstr ""
"예외 클래스는 다른 클래스들이 할 수 있는 어떤 것도 가능하도록 정의될 수 있지만, 보통은 간단하게 유지합니다. 종종 예외 처리기가"
" 에러에 관한 정보를 추출할 수 있도록 하기 위한 몇 가지 어트리뷰트들을 제공하기만 합니다. 여러 가지 서로 다른 에러들을 일으킬 "
"수 있는 모듈을 만들 때, 흔히 사용되는 방식은 모듈에서 정의되는 예외들의 베이스 클래스를 정의한 후, 각기 다른 에러 조건마다 "
"특정한 예외 클래스를 서브 클래스로 만드는 것입니다::"
#: ../Doc/tutorial/errors.rst:317
msgid ""
"Most exceptions are defined with names that end in \"Error\", similar to "
"the naming of the standard exceptions."
msgstr "대부분의 예외는 표준 예외들의 이름들과 유사하게, \"Error\" 로 끝나는 이름으로 정의됩니다."
#: ../Doc/tutorial/errors.rst:320
msgid ""
"Many standard modules define their own exceptions to report errors that "
"may occur in functions they define. More information on classes is "
"presented in chapter :ref:`tut-classes`."
msgstr ""
"많은 표준 모듈들은 그들이 정의하는 함수들에서 발생할 수 있는 그 자신만의 예외들을 정의합니다. 클래스에 관한 더 자세한 정보는 "
":ref:`tut-classes` 장에서 다룹니다."
#: ../Doc/tutorial/errors.rst:328
msgid "Defining Clean-up Actions"
msgstr "뒷정리 동작 정의하기"
#: ../Doc/tutorial/errors.rst:330
msgid ""
"The :keyword:`try` statement has another optional clause which is "
"intended to define clean-up actions that must be executed under all "
"circumstances. For example::"
msgstr ""
":keyword:`try` 문은 또 다른 선택적 절을 가질 수 있는데 모든 상황에 실행되어야만 하는 뒷정리 동작을 정의하는 데 "
"사용됩니다. 예를 들어::"
#: ../Doc/tutorial/errors.rst:344
msgid ""
"A *finally clause* is always executed before leaving the :keyword:`try` "
"statement, whether an exception has occurred or not. When an exception "
"has occurred in the :keyword:`!try` clause and has not been handled by an"
" :keyword:`except` clause (or it has occurred in an :keyword:`!except` or"
" :keyword:`!else` clause), it is re-raised after the :keyword:`finally` "
"clause has been executed. The :keyword:`!finally` clause is also "
"executed \"on the way out\" when any other clause of the :keyword:`!try` "
"statement is left via a :keyword:`break`, :keyword:`continue` or "
":keyword:`return` statement. A more complicated example::"
msgstr ""
"*finally 절* 은 예외의 발생 여부와 관계없이 :keyword:`try` 문을 떠날 때 항상 실행됩니다. "
":keyword:`!try` 절에서 예외가 발생하고 :keyword:`except` 절에서 처리되지 않으면 (또는 "
":keyword:`!except` 나 :keyword:`!else` 절에서 발생하면), :keyword:`finally` 절이 실행된 "
"후에 다시 일으킵니다. :keyword:`!finally` 절은 :keyword:`!try` 문의 다른 모든 절에서 "
":keyword:`break`, :keyword:`continue`, :keyword:`return` 문에 의해 \"빠져나가는 "
"길에\" 도 실행됩니다. 더 복잡한 예는 이렇습니다::"
#: ../Doc/tutorial/errors.rst:377
msgid ""
"As you can see, the :keyword:`finally` clause is executed in any event. "
"The :exc:`TypeError` raised by dividing two strings is not handled by the"
" :keyword:`except` clause and therefore re-raised after the "
":keyword:`!finally` clause has been executed."
msgstr ""
"보인 바와 같이, :keyword:`finally` 절은 모든 경우에 실행됩니다. 두 문자열을 나눠서 발생한 "
":exc:`TypeError` 는 :keyword:`except` 절에 의해 처리되지 않고 :keyword:`!finally` 절이 "
"실행된 후에 다시 일어납니다."
#: ../Doc/tutorial/errors.rst:382
msgid ""
"In real world applications, the :keyword:`finally` clause is useful for "
"releasing external resources (such as files or network connections), "
"regardless of whether the use of the resource was successful."
msgstr ""
"실제 세상의 응용 프로그램에서, :keyword:`finally` 절은 외부 자원을 사용할 때, 성공적인지 아닌지와 관계없이, 그 "
"자원을 반납하는 데 유용합니다 (파일이나 네트워크 연결 같은 것들)."
#: ../Doc/tutorial/errors.rst:390
msgid "Predefined Clean-up Actions"
msgstr "미리 정의된 뒷정리 동작들"
#: ../Doc/tutorial/errors.rst:392
msgid ""
"Some objects define standard clean-up actions to be undertaken when the "
"object is no longer needed, regardless of whether or not the operation "
"using the object succeeded or failed. Look at the following example, "
"which tries to open a file and print its contents to the screen. ::"
msgstr ""
"어떤 객체들은 객체가 더 필요 없을 때 개입하는 표준 뒷정리 동작을 정의합니다. 그 객체를 사용하는 연산의 성공 여부와 "
"관계없습니다. 파일을 열고 그 내용을 화면에 인쇄하려고 하는 다음 예를 보세요. ::"
#: ../Doc/tutorial/errors.rst:400
msgid ""
"The problem with this code is that it leaves the file open for an "
"indeterminate amount of time after this part of the code has finished "
"executing. This is not an issue in simple scripts, but can be a problem "
"for larger applications. The :keyword:`with` statement allows objects "
"like files to be used in a way that ensures they are always cleaned up "
"promptly and correctly. ::"
msgstr ""
"이 코드의 문제점은 이 부분이 실행을 끝낸 뒤에도 예측할 수 없는 기간 동안 파일을 열린 채로 둔다는 것입니다. 간단한 "
"스크립트에서는 문제가 되지 않지만, 큰 응용 프로그램에서는 문제가 될 수 있습니다. :keyword:`with` 문은 파일과 같은 "
"객체들이 즉시 올바르게 뒷정리 되도록 보장하는 방법을 제공합니다. ::"
#: ../Doc/tutorial/errors.rst:410
msgid ""
"After the statement is executed, the file *f* is always closed, even if a"
" problem was encountered while processing the lines. Objects which, like "
"files, provide predefined clean-up actions will indicate this in their "
"documentation."
msgstr ""
"문장이 실행된 후에, 줄을 처리하는 데 문제가 발생하더라도, 파일 *f* 는 항상 닫힙니다. 파일과 같이, 미리 정의된 뒷정리 "
"동작들을 제공하는 객체들은 그들의 설명서에서 이 사실을 설명합니다."