如果没有附加调试器,默认情况下 HotChocolate 不会公开异常的详细信息。因此,要获取您的错误消息,您可以:
- 将调试器附加到您的服务器,然后它将在请求中公开异常详细信息(也就是在调试中启动您的服务器:D)
- 以更适合您的开发风格的方式更改此行为。
您可以通过以下方式更改 V11 或 V12 中的默认行为:
public class Startup
{
private readonly IWebHostEnvironment _env;
public Startup(IWebHostEnvironment env)
{
_env = env;
}
public void ConfigureServices(IServiceCollection services)
{
services
.AddGraphQLServer()
...
// You can change _env.IsDevelopment() to whatever condition you want.
// If the condition evaluates to true, the server will expose it's exceptions details
// within the reponse.
.ModifyRequestOptions(opt => opt.IncludeExceptionDetails = _env.IsDevelopment());
}
}
这是您可以在 V10 中更改默认行为的方法:
public class Startup
{
private readonly IWebHostEnvironment _env;
public Startup(IWebHostEnvironment env)
{
_env = env;
}
public void ConfigureServices(IServiceCollection services)
{
services.AddGraphQL(
Schema.Create(builder =>
{
...
}),
// You can change _env.IsDevelopment() to whatever condition you want.
// If the condition evaluates to true, the server will expose it's exceptions details
// within the reponse.
new QueryExecutionOptions {IncludeExceptionDetails = _env.IsDevelopment()}
);
}
}
您还可以将 IErrorFilter 添加到您的应用程序,例如,可以将您的异常记录到您的语言环境控制台,或将异常转换为 GraphQlErrors。有关此主题的更多信息,请查看: