2015-08-26 6 views
2

У меня есть приложение, написанное с pyramid_rpc. Мы называем наши функции через сеть через json_rpc. В некоторых случаях возникает ошибка при вводе пользователя (логическая ошибка), и я хочу вернуть пользовательскую ошибку пользователю. для примера рассмотрим эту часть кода:Пользовательское сообщение об ошибке в pyramid jsonrpc

@jsonrpc_method(method='calc.insurance.fee', endpoint="api") 
def market_engine_beta(request, person_id: int, age: int):  
    if age < 10:   
     raise ValueError('age should be bigger than 10') 

но когда я вызываю метод с возрастом = 8 Я вижу эту ошибку: { «jsonrpc»: «2.0», «идентификатор»: «1», «ошибка ": {" message ":" внутренняя ошибка "," код ": -32603}}

как я могу вернуть свою ошибку пользователю? примечание: Я также попробовал эту ссылку: http://docs.pylonsproject.org/projects/pyramid//en/latest/narr/views.html#custom-exception-views

ответ

0

Вы можете поднять на JsonRpcError; если вы включили pyramid_rpc с config.include, должно быть специальное представление исключений, которое будет обрабатывать их правильно.

Для ваших пользовательских исключений, имеющих пользовательский вид, должен работать; однако важно убедиться, что код действительно правильный и не приводит к выбросам дополнительных исключений.

Смежные вопросы