Not able to catch error in plyer notification

I am not able to catch errors produced when I provide the wrong directory path to the icon.

try:
    from plyer import notification
except Exception as e:
    print(e)

def notify(title, message, app_icon, timeout=4):
    try:
        notification.notify(
            title=title,
            message=message,
            app_icon=app_icon,
            timeout=timeout,
            toast=False
        )
    except Exception as e:
        print(e)

try:
    notify("Error",'Error-description','dir/img.ico',8)
except Exception as e:
    print(e)

by producing the error :

Exception in thread Thread-1:
Traceback (most recent call last):
  File "C:\Users\prana\AppData\Local\Programs\Python\Python39\lib\threading.py", line 954, in _bootstrap_inner
    self.run()
  File "C:\Users\prana\AppData\Local\Programs\Python\Python39\lib\threading.py", line 892, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\prana\AppData\Local\Programs\Python\Python39\lib\site-packages\plyer\platforms\win\libs\balloontip.py", line 206, in balloon_tip
    WindowsBalloonTip(**kwargs)
  File "C:\Users\prana\AppData\Local\Programs\Python\Python39\lib\site-packages\plyer\platforms\win\libs\balloontip.py", line 130, in __init__
    raise Exception('Could not load icon {}'.format(app_icon))
Exception: Could not load icon dir/img.ico

This produces error and program quits and is not caught by 'try except' block

How to catch it?