2016-06-28 5 views
0

私が書いたものでは、tryブロックまたはexcept UnexpectedAlertPresentExceptionブロックでNoResultExceptionを発生させることができます。いずれの場合もexcept NoResultExceptionブロックに行きたいと思いますが、tryブロックでNoResultExceptionが発生した場合にのみこれを行います。これは私が今持っているものは約です:except節でハンドル例外が発生しました

try: 
    # do things 
except UnexpectedAlertPresentException: 
    # do other things, including possibly raise NoResultException 
except NoResultException: 
    # handle exception 

私はこのような何かにそれを変更することができます:NoResultExceptionを処理するために

try: 
    # do things 
except UnexpectedAlertPresentException: 
    try: 
     # do other things, including possibly raise NoResultException 
    except NoResultException: 
     # handle exception 
except NoResultException: 
    # handle exception 

が、私は自分自身を繰り返さないようにしようとしています。これを行うための良い方法はありますか?

+2

通常、例外をさらに発生させる可能性のある「except」ブロック内で操作を行うべきではありませんが、そうする必要がある場合は、内部例外の可能性を扱う別の関数 –

答えて

1
try: 
    try: 
     # do things 
    except UnexpectedAlertPresentException: 
     # do other things, including possibly raise NoResultException 
except NoResultException: 
    # handle exception 

例外処理フローで船外に移動しないようにしてください。ロジックは本当に難しいことができます、そして、インデントは本当に深くなることができます。

関連する問題