goober/modules/unhandledexception.py

33 lines
953 B
Python

import sys
import traceback
import os
from modules.settings import Settings as SettingsManager
import logging
from modules.globalvars import RED, RESET
import modules.keys as k
settings_manager = SettingsManager()
settings = settings_manager.settings
logger = logging.getLogger("goober")
def handle_exception(exc_type, exc_value, exc_traceback, *, context=None):
os.system('cls' if os.name == 'nt' else 'clear')
if issubclass(exc_type, KeyboardInterrupt):
sys.__excepthook__(exc_type, exc_value, exc_traceback)
return
with open(settings['splash_text_loc'], "r") as f:
print("".join(f.readlines()))
print(f"{RED}=====BEGINNING OF TRACEBACK====={RESET}")
traceback.print_exception(exc_type, exc_value, exc_traceback)
print(f"{RED}========END OF TRACEBACK========{RESET}")
print(f"{RED}{k.unhandled_exception()}{RESET}")
if context:
print(f"{RED}Context: {context}{RESET}")