Funktionen catch

Funktionen catch är en del av try-catch-blocket och används för att fånga undantag som kan kastas i try-blocket. När ett undantag uppstår övergår kodkörningen till motsvarande catch-block, där felet kan hanteras.

Syntax

phptry {
  // Kod som kan kasta ett undantag
} catch (ExceptionType $e) {
  // Hantering av undantag
}

Exempel

Ett enkelt exempel på undantagshantering:

php<?php
  try {
    throw new Exception('Something went wrong');
  } catch (Exception $e) {
    echo 'Caught exception: ' . $e->getMessage();
  }
?>

Resultat av kodkörning:

php'Caught exception: Something went wrong'

Exempel

Hantering av olika typer av undantag:

php<?php
  try {
    if (rand(0, 1)) {
      throw new InvalidArgumentException('Invalid argument');
    } else {
      throw new RuntimeException('Runtime error');
    }
  } catch (InvalidArgumentException $e) {
    echo 'Invalid argument: ' . $e->getMessage();
  } catch (RuntimeException $e) {
    echo 'Runtime error: ' . $e->getMessage();
  } catch (Exception $e) {
    echo 'Generic exception: ' . $e->getMessage();
  }
?>

Möjliga resultat av kodkörning:

php'Invalid argument: Invalid argument'
eller
'Runtime error: Runtime error'

Se även

  • konstruktionen try,
    som definierar ett kodblock för undantagshantering
  • konstruktionen throw,
    som kastar ett undantag
  • klassen Exception,
    som är basklassen för alla undantag