Message117145
| Author |
jaraco |
| Recipients |
alexandre.vassalotti, belopolsky, brett.cannon, ehuss, facundobatista, georg.brandl, gvanrossum, jafo, jaraco, jarpa, kylev, loewis, nnorwitz, tseaver, zseil |
| Date |
2010年09月22日.14:58:04 |
| SpamBayes Score |
0.0012687591 |
| Marked as misclassified |
No |
| Message-id |
<1285167487.24.0.799498618025.issue1692335@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
After some further reading, I found that PEP-352 (http://www.python.org/dev/peps/pep-0352/) explicitly states that "Including programmatic information (e.g., an error code number) should be stored as a separate attribute in a subclass [and not in the args attribute]." The parameter to Exception.__init__ should always be a single, human-readable string. The default pickler doesn't handle this officially-prescribed use-case without overriding __reduce__.
class F(Exception):
def __init__(self, message, code):
Exception.__init__(self, message)
self.code = code
Of course, as belopolsky observed, __repr__ must also be overridden. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2010年09月22日 14:58:07 | jaraco | set | recipients:
+ jaraco, gvanrossum, loewis, nnorwitz, brett.cannon, georg.brandl, facundobatista, jafo, ehuss, tseaver, belopolsky, zseil, alexandre.vassalotti, jarpa, kylev |
| 2010年09月22日 14:58:07 | jaraco | set | messageid: <1285167487.24.0.799498618025.issue1692335@psf.upfronthosting.co.za> |
| 2010年09月22日 14:58:05 | jaraco | link | issue1692335 messages |
| 2010年09月22日 14:58:04 | jaraco | create |
|