import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . run Blocking Ċ Ċ fun Ġmain () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠ Ġval Ġdam Capacity Ġ= Ġ 5 0 Ġ; Ġvar Ġwater Level Ġ= Ġ 0 ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġflow ing R iver (). collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck ( water Level Ġ<= Ġdam Capacity ) Ġ{ Ġ" D am Ġcapacity Ġreached " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Water Ġlevel Ġ${ water Level ++ }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" !!! ĠAL ERT Ġ!!! Ġ: Ġ${ e . message }") ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Water Ġlevel Ġlogged Ġand Ġaction Ġtaken ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ // With Ġthrow Ċ /* fun Ġmain () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠ Ġval Ġdam Capacity Ġ= Ġ 5 0 ĊĠĠĠ Ġvar Ġwater Level Ġ= Ġ 0 ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġflow ing R iver (). collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( water Level Ġ>= Ġdam Capacity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" D am Ġcapacity Ġreached ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Water Ġlevel Ġ${ water Level ++ }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" !!! ĠAL ERT Ġ!!! Ġ: Ġ${ e . message }") ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Water Ġlevel Ġlogged Ġand Ġaction Ġtaken ") ĊĠĠĠ Ġ} Ċ Ċ }*/