भीतर स्प्रिंग बूट कस्टम अपवाद मैं अपने स्प्रिंग बूट आधारित रेस्ट सेवा में एक वैश्विक अपवाद संचालन को परिभाषित किया है:एक रेस्ट सेवा
@ControllerAdvice
public class GlobalExceptionController {
private final Logger LOG = LoggerFactory.getLogger(getClass());
@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR, reason = "Internal application error")
@ExceptionHandler({ServiceException.class})
@ResponseBody
public ServiceException serviceError(ServiceException e) {
LOG.error("{}: {}", e.getErrorCode(), e.getMessage());
return e;
}
}
और एक कस्टम ServiceException:
public class ServiceException extends RuntimeException {
private static final long serialVersionUID = -6502596312985405760L;
private String errorCode;
public ServiceException(String message, String errorCode, Throwable cause) {
super(message, cause);
this.errorCode = errorCode;
}
// other constructors, getter and setters omitted
}
अब तक तो अच्छा, जब एक अपवाद निकाल दिया जाता है तो नियंत्रक काम करता है और इसके साथ प्रतिक्रिया करता है:
{
"timestamp": 1413883870237,
"status": 500,
"error": "Internal Server Error",
"exception": "org.example.ServiceException",
"message": "somthing goes wrong",
"path": "/index"
}
लेकिन वें ई फ़ील्ड त्रुटि कोड JSON प्रतिक्रिया में नहीं दिखाया गया है।
तो मैं अपने आवेदन में कस्टम अपवाद प्रतिक्रिया कैसे परिभाषित कर सकता हूं।
हाय एंडी, कस्टम अपवाद वर्ग अपवाद या फेंकने योग्य तो त्रुटि उदाहरण के साथ फैली यहाँ हैं UnhandledThrowException क्यों हो रहा है होगा। – KSK
@KSK यह मुझे स्पष्ट नहीं है कि यह इस प्रश्न से कैसे संबंधित है। मुझे लगता है कि आप कुछ और विवरण –
महान के साथ एक नया प्रश्न पूछना बेहतर होगा, धन्यवाद एंडी –