diff --git a/python/taichi/lang/kernel_impl.py b/python/taichi/lang/kernel_impl.py index 4cc8ac3330c33..d0e109b9375c3 100644 --- a/python/taichi/lang/kernel_impl.py +++ b/python/taichi/lang/kernel_impl.py @@ -1017,9 +1017,12 @@ def __init__(self, kernel_owner, wrapped_kernel_func): self.__name__ = None def __call__(self, *args, **kwargs): - if self._is_staticmethod: - return self._primal(*args, **kwargs) - return self._primal(self._kernel_owner, *args, **kwargs) + try: + if self._is_staticmethod: + return self._primal(*args, **kwargs) + return self._primal(self._kernel_owner, *args, **kwargs) + except (TaichiCompilationError, TaichiRuntimeError) as e: + raise type(e)('\n' + str(e)) from None def grad(self, *args, **kwargs): return self._adjoint(self._kernel_owner, *args, **kwargs)