package Ġru . qi wi . devops . mission . control . web . errors Ċ Ċ import Ġorg . springframework . boot . web . servlet . error . Error Controller Ċ import Ġorg . springframework . http . HttpStatus Ċ import Ġorg . springframework . web . bind . annotation . RequestMapping Ċ import Ġorg . springframework . web . bind . annotation . RestController Ċ import Ġorg . springframework . web . util . Web Utils Ċ import Ġru . qi wi . devops . mission . control . web . model . ApiResponse Entity Ċ import Ġru . qi wi . devops . mission . control . web . model . Error DTO Ċ import Ġru . qi wi . devops . mission . control . web . model . to Response Entity Ċ import Ġjavax . servlet . http . HttpServletRequest Ċ Ċ @ RestController Ċ class ĠGlobal Error Controller Ġ: ĠError Controller Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Error Path () Ġ= Ġ"/ error " ĊĊĠĠĠ Ġ@ RequestMapping ("/ error ") ĊĠĠĠ Ġfun Ġerror ( request : ĠHttpServletRequest ): ĠApiResponse Entity < out ĠError DTO > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexception Cause Ġ= Ġrequest . getAttribute ( Web Utils . ERROR _ EXCEPTION _ ATTRIBUTE ) ĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġrequest . getAttribute ( Web Utils . ERROR _ MESSAGE _ ATTRIBUTE ) Ġas ? ĠString ĊĠĠĠĠĠĠĠ Ġwhen Ġ( exception Cause ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠApiException Ġ-> Ġreturn Ġexception Cause . error . to Response Entity ( description Ġ= Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠThrowable Ġ-> Ġthrow Ġexception Cause ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġrequested Status Ġ= ĠgetStatus ( request ) ĊĠĠĠĠĠĠĠ Ġval Ġerror Ġ= ĠApi Errors . DEFAULT _ ERRORS [ requested Status ] Ġ?: ĠApi Errors . INTERNAL _ ERROR ĊĠĠĠĠĠĠĠ Ġreturn Ġerror . to Response Entity ( description Ġ= Ġmessage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun ĠgetStatus ( request : ĠHttpServletRequest ): ĠHttpStatus Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠstatusCode Ġ= Ġrequest . getAttribute ( Web Utils . ERROR _ STATUS _ CODE _ ATTRIBUTE ) Ġas ? ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn ĠHttpStatus . INTERNAL _ SERVER _ ERROR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠHttpStatus . valueOf ( statusCode ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ(_ : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠHttpStatus . INTERNAL _ SERVER _ ERROR ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }