当我在 dart 中收到异常消息时,为什么会收到“异常:”?

Bal*_*ala 2 exception http flutter

嗨,我是 dart 和 flutter 框架的新手。

我从我正在调用 API 的服务类中抛出如下错误。

if(res["status"]!=200) throw new Exception("Invalid User");
Run Code Online (Sandbox Code Playgroud)

并在如下所示的演示者课程中接收并打印

.catchError((Object error){
      print(error);

});
Run Code Online (Sandbox Code Playgroud)

我期望结果为“无效用户”,但得到了诸如“异常:无效用户”之类的附加词。你能解释一下为什么这个额外的词“例外”会出现吗?我怎样才能只得到我正在传递的字符串。

jit*_*555 7

令人惊讶的是,在异常 toString 代码中是这样编写的。

 String toString() {
    if (message == null) return "Exception";
    return "Exception: $message";  // your message will be appended after exception. 
  }
Run Code Online (Sandbox Code Playgroud)

如果你想避免这种情况,那么你必须创建如下的自定义异常:

class HttpException implements Exception {
  final String message;

  HttpException(this.message);  // Pass your message in constructor. 

  @override
  String toString() {
    return message;
  }
}
Run Code Online (Sandbox Code Playgroud)