Error HandlingΒΆ
porter error handling is similar to flask. When an exception goes
unhandled while processing an HTTP request, if the exception has the attribute
code then porter will use this value as the status code for the HTTP
response.
porter is designed to cover exception handling for 99% of use cases. However,
there are legitimate reasons users may need to implement custom exception
handling. For example, suppose you want to use porter to expose documentation
for a model REST API before the model is ready to start serving requests. In
this case, you might want to deploy a model whose endpoint returns 503. This can be
accomplished as follows
from porter.exceptions import PorterException
from porter.services import PredictionService
class StubService(PredictionService):
def serve(self):
raise PorterException('Model not yet available', code=503)