Dart中readLineSync命令报错“Unknown evaluation response type: null”求助
问题分析与解决办法
一、代码逻辑错误
你当前的代码存在明显逻辑问题:
- 提示输入“Obtained Marks”后,并未读取新的输入值,直接把之前输入的Maximum Marks赋值给了
mxm,完全不符合需求逻辑。 - 使用
!强制解包stdin.readLineSync(),如果输入为空或终端意外关闭,会直接触发空指针异常,代码健壮性不足。
修正后的代码示例:
import 'dart:io'; void main() { int? maxMarks; int? obtainedMarks; print('Enter Maximum Marks:'); String? maxInput = stdin.readLineSync(); if (maxInput != null) { maxMarks = int.tryParse(maxInput); } if (maxMarks == null) { print('无效的最高分输入,请输入整数'); return; } print('Enter Obtained Marks:'); String? obtainedInput = stdin.readLineSync(); if (obtainedInput != null) { obtainedMarks = int.tryParse(obtainedInput); } if (obtainedMarks == null) { print('无效的得分输入,请输入整数'); return; } print('最高分: $maxMarks'); print('得分: $obtainedMarks'); print('总分计算: ${maxMarks + obtainedMarks}'); }
二、关于报错“Unknown evaluation response type: null”
这个错误并非代码语法问题,而是VS Code Dart调试器的终端交互bug,可通过以下方式解决:
- 放弃VS Code的调试模式运行代码,直接在终端执行
dart your_file_name.dart命令启动程序。 - 检查VS Code的Dart插件版本,更新到最新版后重试。
- 确认终端支持标准输入交互,避免使用不支持输入的集成终端环境。
内容的提问来源于stack exchange,提问作者TalIQ501
相关产品推荐
相关产品推荐

