Witam,
Mam problem z przechwyceniem wyjątku generowanego przez biblioteke S3 (amazon). Biblioteka generuje wyjątki w postaci trigger_error i za nic na świecie nie mogę ich przechwycić. Wygląda to mniej więcej tak:
Kontroler:
  1. <?php
  2. try {
  3.   $s3 = new S3(accessKey, secretKey);
  4.   $s3_small=$s3->putObjectFile($image_tmp['small'], S3_IMG_INST, 's_'.$inert_id.'_'.$url_filename, S3::ACL_PUBLIC_READ);
  5. } catch (Exception $e){
  6.   // obsluga wyjatku... usuniecie rekordu z bazy, zaladowanie widoku bledu itd.
  7. }
  8. ?>


Niestety nic to nie daje. W konfiguracji mam wyłącznie błędów (sugerowane na produkcji). W logu dostaje coś takiego:
  1. <?php
  2. 2009-01-11 19:44:54 +01:00 --- error: Nieobs&#322;ugiwany PHP Error: S3::putObject(): [35] Unknown SSL protocol error in connection to xxxxx.s3.amazonaws.com:443  w pliku application/libraries/s3.php w lini 342
  3. ?>


w lini tej jest wspomniane wczesniej generowanie błędu:
  1. <?php
  2. trigger_error(sprintf("S3::putObject(): [%s] %s", $rest->response->error['code'], $rest->response->error['message']), E_USER_WARNING);
  3. ?>


Próbowałem z Koha_Exception i Kohana_User_Exception, niestety dalej to samo. Pojawia się standardowa informacja o błędzie: "Nie można zakończyć żądania. Przejdź na stronę główną lub spróbuj znowu."

U mnie wygląda to tak, że najpierw wstawiany jest rekord do bazy, id rekordu dołączany jest do nazwy pliku w amazon. Powinno być tak, że jeśli nie uda się przesłać do amazona usuwany jest rekord z bazy i wyświetlane info o niepowodzeniu (właśnie po przechwyceniu wyjątku, który nie w moim przypadku nie działa).

Jakieś pomysły? Moje się już pokończyły.

Z góry dzięki za pomoc