summaryrefslogtreecommitdiffstats
path: root/examples/exception.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-14 20:18:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-14 20:18:28 +0000
commitf8363b456f1ab31ee56abad579b215af195093d5 (patch)
treeb1500c675c2e0a55fb75721a854e1510acf7c862 /examples/exception.py
parentInitial commit. (diff)
downloadrich-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.py36
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)