package Ġcom . co ach . fl ame . exception . handlers Ċ Ċ import Ġcom . co ach . fl ame . exception . Internal Server Exception Ċ import Ġcom . co ach . fl ame . failure . domain . ErrorCode Ċ import Ġcom . co ach . fl ame . failure . domain . Error Detail Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . beans . factory . annotation . Value Ċ import Ġorg . springframework . core . Ordered Ċ import Ġorg . springframework . core . annotation . Order Ċ import Ġorg . springframework . http . HttpStatus Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . http . Response Entity Ċ import Ġorg . springframework . web . bind . annotation . Controller Ad vice Ċ import Ġorg . springframework . web . bind . annotation . ExceptionHandler Ċ import Ġorg . springframework . web . context . request . WebRequest Ċ Ċ @ Controller Ad vice Ċ @ Order ( Ordered . LOW EST _ PREC ED ENCE ) Ċ class ĠDefault ExceptionHandler ( ĊĠĠĠ Ġ@ Value ( value Ġ= Ġ"\ ${ fl ame co ach . rest . debug . enable }") Ġprivate Ġval Ġrest Debug Enable : ĠBoolean , Ċ ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLOGGER : ĠLogger Ġ= ĠLoggerFactory . getLogger ( Default ExceptionHandler :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ ExceptionHandler ( Exception :: class ) ĊĠĠĠ Ġfun Ġhandle Root Exception ( ex : ĠException , Ġrequest : ĠWeb Request ): ĠResponseEntity < Any > Ġ{ ĊĊĠĠĠĠĠĠĠ ĠLOGGER . error (" op r = handle Root Exception , Ġmsg =' Unexpected Ġerror Ġhappened . ĠThis Ġwill Ġbe Ġwrapped Ġinto ĠInternal Server Exception '", Ġex ) ĊĊĠĠĠĠĠĠĠ Ġval Ġinternal Exception Ġ= ĠInternal Server Exception ( ErrorCode . CODE _ 9 9 9 9 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" This Ġis Ġan Ġinternal Ġproblem , Ġplease Ġcontact Ġthe Ġadmin Ġsystem .", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġex ) ĊĊĠĠĠĠĠĠĠ Ġval Ġerror Detail Ġ= ĠError Detail . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Enable Debug ( rest Debug Enable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. throwable ( internal Exception ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. status ( HttpStatus . valueOf ( error Detail . status )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ PRO BLE M _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ( error Detail ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ