From b8f06745569df6916d51b3616ab67f5a5108bca8 Mon Sep 17 00:00:00 2001 From: Elijah Ahianyo Date: Tue, 24 Oct 2023 17:28:51 +0000 Subject: [PATCH] Improve Event handler Error message (#2019) --- reflex/components/component.py | 7 ++++++- reflex/event.py | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/reflex/components/component.py b/reflex/components/component.py index b9f4ec82e..84a3551df 100644 --- a/reflex/components/component.py +++ b/reflex/components/component.py @@ -264,7 +264,12 @@ class Component(Base, ABC): for v in value: if isinstance(v, EventHandler): # Call the event handler to get the event. - event = call_event_handler(v, arg_spec) # type: ignore + try: + event = call_event_handler(v, arg_spec) # type: ignore + except ValueError as err: + raise ValueError( + f" {err} defined in the `{type(self).__name__}` component" + ) from err # Add the event to the chain. events.append(event) diff --git a/reflex/event.py b/reflex/event.py index c31353db6..683919a00 100644 --- a/reflex/event.py +++ b/reflex/event.py @@ -479,8 +479,8 @@ def call_event_handler( else: source = inspect.getsource(arg_spec) # type: ignore raise ValueError( - f"number of arguments in {event_handler.fn.__name__} " - f"doesn't match the definition '{source.strip().strip(',')}'" + f"number of arguments in {event_handler.fn.__qualname__} " + f"doesn't match the definition of the event trigger '{source.strip().strip(',')}'" ) else: console.deprecate(