Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][Wyjątki] Wyjątek który powinien zostać złapany w kodzie wyskakuje jako 'uncaught'
Forum PHP.pl > Forum > Przedszkole
mlawnik
Mam klasę parsującą tabelę html i zapisującą ją do bazy.
Najpierw zapisuję rekord do bazy, a potem poprzez wyjątek sprawdzam czy mySQL zwróci kod duplikatu.

Mój kod: https://gist.github.com/marcinlawnik/899cfb3de084545ed8f0

Błąd pojawia się w linii 255:Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry, chociaż cała konstrukcja ujęta jest w try-catch.
Crozin
1. Nie importujesz nigdzie klasy PDOException (w przeciwieństwie do PDO), więc interpreter rozumie Twój kod jako:
  1. catch (\DziennikLogin\classes\PDOException $e)

2. Nie importujesz nigdzie klasy Exception, więc ona również jest rozumiana jako \DziennikLogin\classes\Exception.
3. Nazwa przestrzeni "DziennikLogin\classes" jest kompletnie nieodpowiednia. Google: PHP PSR.
mlawnik
Dzięki za odpowiedź.

Warto używać takiego zapisu czy na początku dać use?

  1. throw new \Exception ('błąd');


Poczytam sobie o tym psr.
Crozin
Raczej bez znaczenia, jednak ja dla klas z głównej przestrzeni nazw nie korzystam z use, czyli po prostu \RuntimeException
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.