catch Funksiýasy

catch funksiýasy try-catch blokunyň bir bölegi bolup, try blokunda atylup bilinjek ýalňyşlyklary tutmak hyzmatyny ýerine ýetirýär. Ýalňyşlyk ýüze çykanda, kodyň ýerine ýetirilişi degişli catch blogyna geçýär, ýerde ýalňyşlyk dolandyrylyp bilner.

Sintaksis

phptry {
  // Ýalňyşlyk atylup bilinjek kod
} catch (ExceptionType $e) {
  // Ýalňyşlygy dolandyrmak
}

Mysal

Ýalňyşlygy dolandyrmagyň iň ýönekeý mysaly:

php<?php
  try {
    throw new Exception('Bir zat ýalňyş gitdi');
  } catch (Exception $e) {
    echo 'Tutulan ýalňyşlyk: ' . $e->getMessage();
  }
?>

Kodyň ýerine ýetiriliş netijesi:

php'Tutulan ýalňyşlyk: Bir zat ýalňyş gitdi'

Mysal

Tapawutly görnüşdäki ýalňyşlyklary dolandyrmak:

php<?php
  try {
    if (rand(0, 1)) {
      throw new InvalidArgumentException('Nädogry argument');
    } else {
      throw new RuntimeException('Ýerine ýetiriliş ýalňyşlygy');
    }
  } catch (InvalidArgumentException $e) {
    echo 'Nädogry argument: ' . $e->getMessage();
  } catch (RuntimeException $e) {
    echo 'Ýerine ýetiriliş ýalňyşlygy: ' . $e->getMessage();
  } catch (Exception $e) {
    echo 'Umumy ýalňyşlyk: ' . $e->getMessage();
  }
?>

Kodyň ýerine ýetirilişiniň mümkin bolan netijeleri:

php'Nädogry argument: Nädogry argument'
ýa-da
'Ýerine ýetiriliş ýalňyşlygy: Ýerine ýetiriliş ýalňyşlygy'

Şeýle-de serediň

  • try gurluşy,
    ýalňyşlyklary dolandyrmak üçin kod blogyny kesgitleýär
  • throw gurluşy,
    ýalňyşlyk atýar
  • Exception klas,
    bolsa ähli ýalňyşlyklar üçin esasy klasdyr