Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #92005

Re: Retrying to send message

Path csiph.com!usenet.pasdenom.info!news.redatomik.org!newsfeed.xs4all.nl!newsfeed1.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail
Return-Path <rosuav@gmail.com>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.001
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'except:': 0.07; 'exception.': 0.07; 'appropriate.': 0.09; 'exception,': 0.09; 'exception:': 0.09; 'instance.': 0.09; 'cc:addr:python-list': 0.10; 'exception': 0.13; 'def': 0.14; 'instead.': 0.15; 'skip:f 30': 0.15; 'thu,': 0.15; '"from"': 0.16; 'bug,': 0.16; 'clause.': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'subject:send': 0.16; 'systemexit': 0.16; 'useless': 0.16; 'wrote:': 0.16; 'else,': 0.18; 'skip': 0.18; ';-)': 0.18; '>>>': 0.20; 'handling': 0.20; 'cc:2**0': 0.21; 'cc:addr:python.org': 0.21; '"",': 0.22; 'terminate': 0.22; 'try:': 0.22; 'pass': 0.22; 'am,': 0.23; '2015': 0.23; 'slightly': 0.23; 'this:': 0.23; 'header:In-Reply-To:1': 0.24; '(most': 0.24; 'raise': 0.24; 'sort': 0.25; 'message-id:@mail.gmail.com': 0.28; 'went': 0.28; 'division': 0.29; 'code:': 0.29; "i'd": 0.31; 'code': 0.31; 'up.': 0.32; 'class': 0.33; 'skip:_ 30': 0.33; 'traceback': 0.33; 'another': 0.34; 'case,': 0.34; 'file': 0.34; 'message.': 0.34; 'received:google.com': 0.34; 'something': 0.35; 'but': 0.36; 'except': 0.36; 'subject:: ': 0.37; 'skip:z 10': 0.38; 'test': 0.39; 'your': 0.60; 'avoid': 0.61; 'more': 0.62; 'complete': 0.63; 'different': 0.64; 'here': 0.66; 'direct': 0.70; 'useful.': 0.72; '(also,': 0.84; 'cecil': 0.84; 'chrisa': 0.84; 'westerhof': 0.84; 'to:none': 0.90
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc :content-type; bh=cJw68HvFmqXmDvlHsMkKq1qQmxITJRBeBMlCJ2/kzVI=; b=uI7eDIT+SfZaIRQzgemZMBVWVrVaxYn5BaFItOPHJG3zpERYYlNz/lR9R6xXgVXlvs EzVr2r4HuLNmnbBUSAjABBGKyE9LBgoG2c5J4UX/P0eusuQCQM12mAGDGnYwAPY896on ni3TNZEEKx5eFTW1Zbxxq1VCnE/Ilnq6ww5cgYl3Hb3n9/8ncI0O/SRnNWa/EdDOWfbx DPxf/+HtIoDgTIi7yMY73uQaH3Vi9Bcfkcvp1BqO85E6B181cCupInv5/H4pRX4M+vmY d/njRNkMW1BfvSupb1TvMw+km2aRLuEh99eZLiIsykE1BMZF70/5hNn/WS2bPRQVEMJS 78HQ==
MIME-Version 1.0
X-Received by 10.107.131.196 with SMTP id n65mr6694ioi.53.1433368813110; Wed, 03 Jun 2015 15:00:13 -0700 (PDT)
In-Reply-To <876174ix9n.fsf@Equus.decebal.nl>
References <87egltht87.fsf@Equus.decebal.nl> <mailman.108.1433338144.13271.python-list@python.org> <876174ix9n.fsf@Equus.decebal.nl>
Date Thu, 4 Jun 2015 08:00:13 +1000
Subject Re: Retrying to send message
From Chris Angelico <rosuav@gmail.com>
Cc "python-list@python.org" <python-list@python.org>
Content-Type text/plain; charset=UTF-8
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.20+
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.134.1433368816.13271.python-list@python.org> (permalink)
Lines 57
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1433368816 news.xs4all.nl 2867 [2001:888:2000:d::a6]:42232
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:92005

Show key headers only | View raw


On Thu, Jun 4, 2015 at 2:15 AM, Cecil Westerhof <Cecil@decebal.nl> wrote:
>> And I'd also skip the bare except clause. If you get any sort of
>> exception, whether it's a bug, a failure from libturpial, a network
>> error, or anything else, your code will just terminate with a bland
>> and useless message. Much better to simply let the exception bubble
>> up.
>
> I kept the except. I like to see the message that went wrong. ;-)

In that case, there's an easier way to deal with it: just raise a
different exception, and let them chain. Something like this:

>>> def send_message(msg):
...     try: 1/0
...     except: raise FailedMessageException(msg)
...
>>> class FailedMessageException(Exception): pass
...
>>> send_message("Test")
Traceback (most recent call last):
  File "<stdin>", line 2, in send_message
ZeroDivisionError: division by zero

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in send_message
__main__.FailedMessageException: Test

But I'd still avoid the bare except, and use "except Exception:"
instead. I don't think you want to catch SystemExit in this way, for
instance. So here's how I'd write that code:

>>> def send_message(msg):
...     try: 1/0
...     except Exception as e: raise FailedMessageException(msg) from e
...
>>> send_message("Test")
Traceback (most recent call last):
  File "<stdin>", line 2, in send_message
ZeroDivisionError: division by zero

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in send_message
__main__.FailedMessageException: Test

(Also, the use of "from" here causes a slightly different wording,
which I think is more appropriate. But that's minor.)

You get the report of which message failed, plus you get the complete
traceback from the original exception. Much MUCH more useful.

ChrisA

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Retrying to send message Cecil Westerhof <Cecil@decebal.nl> - 2015-06-03 14:27 +0200
  Re: Retrying to send message Chris Angelico <rosuav@gmail.com> - 2015-06-03 23:29 +1000
    Re: Retrying to send message Cecil Westerhof <Cecil@decebal.nl> - 2015-06-03 18:15 +0200
      Re: Retrying to send message MRAB <python@mrabarnett.plus.com> - 2015-06-03 19:12 +0100
      Re: Retrying to send message Ethan Furman <ethan@stoneleaf.us> - 2015-06-03 11:28 -0700
      Re: Retrying to send message Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-06-03 21:37 +0100
      Re: Retrying to send message Chris Angelico <rosuav@gmail.com> - 2015-06-04 08:00 +1000
      Re: Retrying to send message Ethan Furman <ethan@stoneleaf.us> - 2015-06-03 16:15 -0700
        Re: Retrying to send message Cecil Westerhof <Cecil@decebal.nl> - 2015-06-04 07:13 +0200

csiph-web