Finally komandasy

finally blogy ýüz bermeleri işlemek üçin try we catch gurluşlary bilen bilelikde ulanylýar. Finally-iň içindäki kod hemme ýagdaýda - try-blogunyň üstünlikli ýerine ýetirilmegi hem, ýüz bermäniň ýüze çykmagy hem bolanda ýerine ýetiriler.

Sintaksis

phptry {
  // Ýüz berme ýüze çykaryp bilýän kod
} catch (Exception $e) {
  // Ýüz bermäni işlemek
} finally {
  // Hemme wagt ýerine ýetiriler kod
}

Mysal

Koduň üstünlikli ýerine ýetirilmegi bilen mysal:

php<?php
try {
  $res = 10 / 2;
  echo "Netije: " . $res . "\n";
} catch (Exception $e) {
  echo "Ýüz berme: " . $e->getMessage() . "\n";
} finally {
  echo "Bu hemme wagt ýerine ýetirer\n";
}
?>

Koduň ýerine ýetiriliş netijesi:

phpNetije: 5
Bu hemme wagt ýerine ýetirer

Mysal

Ýüz bermäni işlemek bilen mysal:

php<?php
try {
  $res = 10 / 0;
  echo "Netije: " . $res . "\n";
} catch (Exception $e) {
  echo "Ýüz berme: " . $e->getMessage() . "\n";
} finally {
  echo "Bu hemme wagt ýerine ýetirer\n";
}
?>

Koduň ýerine ýetiriliş netijesi:

phpÝüz berme: Nola bölmek
Bu hemme wagt ýerine ýetirer

Mysal

Resurslary boşatmak üçin finally-den peýdalanmak:

php<?php
$file = fopen("mysal.txt", "r");
try {
  // Faýl bilen iş
  if ($file) {
    echo "Faýl üstünlikli açyldy\n";
  }
} catch (Exception $e) {
  echo "Ýüz berme: " . $e->getMessage() . "\n";
} finally {
  if ($file) {
    fclose($file);
    echo "Faýl finally blogynda ýapyldy\n";
  }
}
?>

Koduň ýerine ýetiriliş netijesi:

phpFaýl üstünlikli açyldy
Faýl finally blogynda ýapyldy

Şeýle-de görüň

  • try gurluşy,
    ýüz bermeleri işlemek üçin ulanylýar
  • Exception klas,
    hemme ýüz bermeler üçin esas klasdyr