使用哪个状态码?

Which status code to use?

我有脚本,它有时会导致 500 Internal Server Error。我可以处理这些错误。但是发生这种情况时应使用哪种状态来回答?

perl 代码示例:

# catch error
eval {
     here is code which sometimes cause 500
     ....
     $response_body =  handle_request();
}

# Check if error occur
if( $@ ) { 
     $response_body =  'Error was handled'; 
     # Should I change status from 500?
     # If I should change. Which status I should use?
     # 200 or something else?
}


return $response_body;    

什么意思,你"handled"吗?您是否完全恢复并且客户获得了他们请求的数据?那么应该是200.

您是否刚刚记录了异常并防止了崩溃,但没有有用的数据发送给客户端?在这种情况下为 500。