aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/infini/core.py3
-rw-r--r--src/infini/exceptions.py4
2 files changed, 7 insertions, 0 deletions
diff --git a/src/infini/core.py b/src/infini/core.py
index 87066370..552d9bf2 100644
--- a/src/infini/core.py
+++ b/src/infini/core.py
@@ -4,6 +4,7 @@ from infini.generator import TextGenerator
from infini.handler import Handler
from infini.output import Output
from infini.typing import Any, Generator
+from infini.exceptions import ValueError
class Core:
@@ -22,6 +23,8 @@ class Core:
input = pre_intercepted_stream
for handled_stream in self.handle(input):
+ if not isinstance(handled_stream, Output):
+ raise ValueError("Handler functions should return or yield a `Output` object.")
if handled_stream.is_empty():
return
outcome = self.generate(handled_stream)
diff --git a/src/infini/exceptions.py b/src/infini/exceptions.py
index 8bc9ceb4..37386ce3 100644
--- a/src/infini/exceptions.py
+++ b/src/infini/exceptions.py
@@ -8,3 +8,7 @@ class KeyError(InfiniException):
class UnknownEvent(InfiniException):
"""文本事件不存在"""
+
+
+class ValueError(InfiniException, ValueError):
+ """错误的数据"""