package Ġtv . blade maker . k otify . exceptions Ċ Ċ import Ġio . ktor . client . plugins .* Ċ import Ġio . ktor . client . statement .* Ċ import Ġio . ktor . util .* Ċ import Ġkotlinx . coroutines . Comp letable Deferred Ċ Ċ open Ġclass ĠK otify Exception ( override Ġval Ġmessage : ĠString ? Ġ= Ġnull , Ġoverride Ġval Ġcause : ĠThrowable ? Ġ= Ġnull ) Ġ: ĠRuntimeException () Ċ Ċ @ Suppress (" unused ", Ġ" Member Visibility Can Be Private ") Ċ class ĠK otify RequestException ( ĊĠĠĠ Ġresponse : ĠHttpResponse , ĊĠĠĠ Ġval Ġerror : ĠString Ċ ) Ġ: ĠK otify Exception ( message Ġ= Ġ"${ response . status . value } Ġ$ error ") Ġ{ ĊĊĠĠĠ Ġval Ġstatus Ġ= Ġresponse . status . value ĊĠĠĠ Ġval Ġdescription Ġ= Ġresponse . status . description ĊĊĠĠĠ Ġval Ġheaders Ġ= Ġresponse . headers . toMap () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġsuspend Ġfun Ġcomplete ( deferred : ĠComp letable Deferred <* >, Ġex : ĠClient RequestException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeferred . complete Exception ally ( from ( ex )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsuspend Ġfun Ġfrom ( ex : ĠClient RequestException ): ĠK otify RequestException Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġerror Ġ= Ġex . response . body As Text () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠK otify RequestException ( ex . response , Ġerror ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }