mirror of https://github.com/astral-sh/ruff
100 lines
2.0 KiB
Python
100 lines
2.0 KiB
Python
"""
|
|
Should emit:
|
|
B904 - on lines 10, 11, 16, 62, 64, 79, 81, 87, 88, 93 and 97
|
|
"""
|
|
|
|
try:
|
|
raise ValueError
|
|
except ValueError:
|
|
if "abc":
|
|
raise TypeError
|
|
raise UserWarning
|
|
except AssertionError:
|
|
raise # Bare `raise` should not be an error
|
|
except Exception as err:
|
|
assert err
|
|
raise Exception("No cause here...")
|
|
except BaseException as err:
|
|
raise err
|
|
except BaseException as err:
|
|
raise some_other_err
|
|
finally:
|
|
raise Exception("Nothing to chain from, so no warning here")
|
|
|
|
try:
|
|
raise ValueError
|
|
except ValueError:
|
|
# should not emit, since we are not raising something
|
|
def proxy():
|
|
raise NameError
|
|
|
|
|
|
try:
|
|
from preferred_library import Thing
|
|
except ImportError:
|
|
try:
|
|
from fallback_library import Thing
|
|
except ImportError:
|
|
|
|
class Thing:
|
|
def __getattr__(self, name):
|
|
# same as the case above, should not emit.
|
|
raise AttributeError
|
|
|
|
|
|
try:
|
|
from preferred_library import Thing
|
|
except ImportError:
|
|
try:
|
|
from fallback_library import Thing
|
|
except ImportError:
|
|
|
|
def context_switch():
|
|
try:
|
|
raise ValueError
|
|
except ValueError:
|
|
raise
|
|
|
|
|
|
try:
|
|
...
|
|
except Exception as e:
|
|
if ...:
|
|
raise RuntimeError("boom!")
|
|
else:
|
|
raise RuntimeError("bang!")
|
|
|
|
|
|
try:
|
|
...
|
|
except Exception as e:
|
|
match 0:
|
|
case 0:
|
|
raise RuntimeError("boom!")
|
|
|
|
try:
|
|
...
|
|
except* Exception as e:
|
|
if ...:
|
|
raise RuntimeError("boom!")
|
|
else:
|
|
raise RuntimeError("bang!")
|
|
|
|
try:
|
|
raise ValueError
|
|
except* ValueError:
|
|
if "abc":
|
|
raise TypeError
|
|
raise UserWarning
|
|
except* AssertionError:
|
|
raise # Bare `raise` should not be an error
|
|
except* Exception as err:
|
|
assert err
|
|
raise Exception("No cause here...")
|
|
except* BaseException as err:
|
|
raise err
|
|
except* BaseException as err:
|
|
raise some_other_err
|
|
finally:
|
|
raise Exception("Nothing to chain from, so no warning here")
|