1
1
mirror of https://github.com/KenanZhu/AutoLibrary.git synced 2026-06-18 07:23:03 +08:00

fix(autoscript): 为异常添加行号信息并补充类型兼容性检查

This commit is contained in:
2026-05-17 02:58:47 +08:00
parent 2843300cf9
commit 33c0f4414c
2 changed files with 35 additions and 6 deletions
+15 -6
View File
@@ -307,9 +307,12 @@ def _evaluateCondition(
continue
left_raw = s[:idx].strip()
right_raw = s[idx + len(op):].strip()
left_obj = _resolveAsObject(left_raw, target_data)
right_obj = _resolveAsObject(right_raw, target_data)
return ASOperator.compare(left_obj, right_obj, op, target_data)
try:
left_obj = _resolveAsObject(left_raw, target_data)
right_obj = _resolveAsObject(right_raw, target_data)
return ASOperator.compare(left_obj, right_obj, op, target_data)
except ValueError as e:
raise ValueError(_errPos(line, str(e)))
raise ValueError(
_errPos(line, f"无法识别的条件表达式 '{condition_str}'")
)
@@ -352,7 +355,10 @@ def _executeSet(
if not obj:
obj = _SCRIPT_VARS.get(upper_name)
if obj:
obj.setValue(resolved, target_data)
try:
obj.setValue(resolved, target_data)
except ValueError as e:
raise ValueError(_errPos(line, str(e)))
return
inferred_type = _inferType(resolved, stripped)
new_var = ASObject(
@@ -398,8 +404,11 @@ def _executeOperation(
target = _resolveFieldObj(field_name)
if target is None:
raise ValueError(_errPos(line, f"未知字段 '{field_name}'"))
operand = _resolveAsObject(raw_value, target_data)
ASOperator.apply(target, operand, op, target_data)
try:
operand = _resolveAsObject(raw_value, target_data)
ASOperator.apply(target, operand, op, target_data)
except ValueError as e:
raise ValueError(_errPos(line, str(e)))
def addTargetVar(