Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理webonyx/graphql php中的自定义错误?_Php_Graphql Php - Fatal编程技术网

如何处理webonyx/graphql php中的自定义错误?

如何处理webonyx/graphql php中的自定义错误?,php,graphql-php,Php,Graphql Php,我正在使用webonyx/graphql-php创建一些graphql查询,文档中解释如何在解析查询期间处理自定义错误的内容非常不完整。例如,如果用户应用程序发送查询以查找某个记录,我希望返回一个自定义错误“Customer not found”,而不仅仅是这个丑陋的结构 [ 'debugMessage' => 'Actual exception message', 'message' => 'Internal server error', 'category

我正在使用webonyx/graphql-php创建一些graphql查询,文档中解释如何在解析查询期间处理自定义错误的内容非常不完整。例如,如果用户应用程序发送查询以查找某个记录,我希望返回一个自定义错误“Customer not found”,而不仅仅是这个丑陋的结构

[
    'debugMessage' => 'Actual exception message',
    'message' => 'Internal server error',
    'category' => 'internal',
    'locations' => [
        ['line' => 10, 'column' => 2]
    ],
    'path' => [
        'listField',
        0,
        'fieldWithException'
    ],
    'trace' => [
        /* Formatted original exception trace */
    ]
];
我读了很多次文档(),但不明白怎么做。你能帮我吗


谢谢大家!

文档指出,为了定制抛出异常时发送的响应,需要抛出一个自定义的
异常
类,该类实现接口
客户端
,并在
isClientSafe
方法中返回
true

也就是说,您需要声明一个
异常
类,如下所示:

class CustomerNotFound extends\Exception实现客户端软件
{
受保护的$message='未找到客户';
公共函数isClientSafe()
{
返回true;
}
公共函数getCategory()
{
返回“失踪”;
}
}
在应用程序逻辑中,当未找到客户记录时,抛出上述异常类,类似于:

if($rowCount<1)
{
抛出新的CustomerNotFound;
}

是的,你说得对!但是在这种情况下(我无法理解),我需要调用解析程序中的CustomerNotFound,或者在其他情况下需要调用?我可以为它创建一个异常,但是。。。我什么时候可以调用此实现?非常感谢你的帮助!是的,如果找不到记录,您将在解析器中抛出异常。