Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Excepciones jerárquicas #38

Open
delapuente opened this issue Apr 27, 2019 · 0 comments
Open

Excepciones jerárquicas #38

delapuente opened this issue Apr 27, 2019 · 0 comments
Labels
ejemplo Un caso de uso o fragmento de código visto en clase

Comments

@delapuente
Copy link
Collaborator

delapuente commented Apr 27, 2019

Relacionado con la sección Capturar una excepción.

Tenemos una jeraquía de excepciones y diferentes acciones por cada tipo de excepción. Queremos llevar a cabo estas acciones de forma que, si salta una excepción de la jerarquía, se lleve a cabo la acción correspondiente a su tipo, y a la del tipo padre, y a la del tipo abuelo..., pero en el orden inverso: todas las acciones desde la del tipo más general, a la del tipo más específico.

class AnimalTriedAccess(Exception): pass
class CatTriedAccess(Exception): pass
class DogTriedAccess(Exception): pass

try:
  raise AnimalTriedAccess('critter')
  # raise DogTriedAccess('Doghnut')
except AnimalTriedAccess as ex:
  if isinstance(ex, AnimalTriedAccess):
    print('Animals not allowed:', ex)

  if isinstance(ex, DogTriedAccess):
    print('Even worst if it is a dog!', ex)

  if isinstance(ex, CatTriedAccess):
    print('Cats are not so bad...', ex)

@ramoncorominas

@delapuente delapuente added the ejemplo Un caso de uso o fragmento de código visto en clase label Apr 27, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ejemplo Un caso de uso o fragmento de código visto en clase
Projects
None yet
Development

No branches or pull requests

4 participants