【发布时间】:2020-07-01 12:28:19
【问题描述】:
我有一些用 C# 编写的其余 API,并且该 API 是从 Angular 调用的(我使用的是 Angular 8 版本)。通话很好,工作正常。但是,如果出现任何异常,我无法以角度显示自定义错误消息。例如,假设我在 C# 中有一个服务器端验证,它验证字段的值是否与字符串“abc”匹配。如果不匹配,则会抛出错误,并且在 UI(在 Angular 中开发)中,我想显示消息
“指定的字符串无效”。
我的服务器端代码如下 -
if (headerValues.Equals("abc")) {
throw new InvalidStringException("Invalid String specified", 999);
}
无效的InvalidStringException 类如下 -
public class InvalidStringException : System.Exception
{
int status { get; set; }
public InvalidStringException() { }
public InvalidStringException(string message, int status) : base(message) {
this.status = status;
}
}
当该异常被抛出并在服务器端捕获时,它可以作为 500 异常使用,但无法打印自定义消息。
我正在尝试使用 Angular 中的代码 -
} catch (error) {
console.log("Error Status: ", error.status);
console.log("Error Status: ", error.message);
}
请建议如何处理这种情况。
【问题讨论】:
-
您是否尝试过调试并查看带有错误参数的 catch 块中的属性?它可能具有与简单的“状态”或“消息”不同的属性名称 catch 块中“错误”的属性和属性是什么?
-
你在前端有什么? catch 块会捕获错误吗?
error中放置了什么对象? -
也尝试返回异常而不是抛出可能吗?
-
您能否在调试器的网络选项卡中显示该请求的响应内容?
-
你能展示你如何从 Angular 调用你的 API 吗?您只在问题中包含了
catch部分。