diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-14 20:18:28 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-14 20:18:28 +0000 |
commit | f8363b456f1ab31ee56abad579b215af195093d5 (patch) | |
tree | b1500c675c2e0a55fb75721a854e1510acf7c862 /examples/exception.py | |
parent | Initial commit. (diff) | |
download | rich-upstream.tar.xz rich-upstream.zip |
Adding upstream version 9.11.0.upstream/9.11.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | examples/exception.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/examples/exception.py b/examples/exception.py new file mode 100644 index 0000000..6bf2a1e --- /dev/null +++ b/examples/exception.py @@ -0,0 +1,36 @@ +""" +Basic example to show how to print an traceback of an exception +""" +from typing import List, Tuple +from rich.console import Console + +console = Console() + + +def divide_by(number: float, divisor: float) -> float: + """Divide any number by zero.""" + # Will throw a ZeroDivisionError if divisor is 0 + result = number / divisor + return result + + +def divide_all(divides: List[Tuple[float, float]]) -> None: + """Do something impossible every day.""" + try: + for number, divisor in divides: + result = divide_by(number, divisor) + console.print(f"{number} divided by {divisor} is {result}") + except Exception: + console.print_exception(extra_lines=5, show_locals=True) + + +DIVIDES = [ + (1000, 200), + (10000, 500), + (0, 1000000), + (3.1427, 2), + (2 ** 32, 2 ** 16), + (1, 0), +] + +divide_all(DIVIDES) |