package Ġtype Cast ing Ċ Ċ fun Ġhandle Error ( e : ĠException ) Ġ{ ĊĠĠĠ Ġwhen Ġ( e ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠNetwork Unavailable Exception Ġ-> Ġprintln ( e . message ) /* Handle Ġunavailable */ ĊĠĠĠĠĠĠĠ Ġis ĠMal formed Url Exception Ġ-> Ġprintln ( e . message ) /* Handle Ġmalformed Ġurl */ ĊĠĠĠĠĠĠĠ Ġis ĠUn author ised RequestException Ġ-> Ġprintln ( e . message ) /* Handle Ġinvalid Ġrequest */ ĊĠĠĠĠĠĠĠ Ġis ĠInvalid Response Exception Ġ-> Ġprintln ( e . message ) /* Handle Ġinvalid Ġresponse */ ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġprintln ( e . message ) Ġ/* Handle Ġgeneric */ ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠNetwork Unavailable Exception ( override Ġval Ġmessage : ĠString ?) Ġ: ĠException ( message ) Ċ class ĠMal formed Url Exception ( override Ġval Ġmessage : ĠString ?) Ġ: ĠException ( message ) Ċ class ĠUn author ised RequestException ( override Ġval Ġmessage : ĠString ?) Ġ: ĠException ( message ) Ċ class ĠInvalid Response Exception ( override Ġval Ġmessage : ĠString ?) Ġ: ĠException ( message ) ĊĊ Ċ fun Ġis Not AN umber ( num : ĠAny ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġnum Ġ! is ĠByte Ġ|| Ġnum Ġ! is ĠShort Ġ|| Ġnum Ġ! is ĠInt Ġ|| Ġnum Ġ! is ĠLong ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġnum Ġ! is ĠFloat Ġ|| Ġnum Ġ! is ĠDouble Ċ } Ċ Ċ fun Ġsmart Cast ( data : ĠAny ) Ġ{ ĊĠĠĠ Ġwhen Ġ( data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġprintln (" It 's Ġa Ġstring Ġand Ġlength Ġis Ġ${ data . length }") ĊĠĠĠĠĠĠĠ Ġis ĠNumber Ġ-> Ġprintln (" It 's Ġa Ġnumber Ġand Ġsome Ġcalculation Ġcan Ġbe Ġperformed ") ĊĠĠĠĠĠĠĠ Ġis ĠException Ġ-> Ġprintln (" It 's Ġan Ġexception Ġand Ġmessage Ġis Ġ${ data . message }") ĊĠĠĠĠĠĠĠ Ġis ĠBoolean Ġ-> Ġprintln (" It 's Ġa Ġboolean Ġwith Ġvalue Ġ$ data ") ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġprintln (" I Ġdon 't Ġrecogn ise Ġthis Ġtype Ġat Ġthe Ġmoment ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ var Ġobj : ĠAny ? Ġ= Ġnull Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġobj Ġ= Ġ" Hard ik " ĊĊĠĠĠ Ġif Ġ( obj Ġis ĠNumber ) Ġ{ ĊĠĠĠĠĠĠĠ Ġobj Ġ= Ġ 3 0 ĊĠĠĠĠĠĠĠ Ġ// Ġprintln ( obj ) ĠG ives Ġcompile Ġtime Ġerror ĊĠĠĠ Ġ} Ċ }