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:
<?php try { $s3 = new S3(accessKey, secretKey); $s3_small=$s3->putObjectFile($image_tmp['small'], S3_IMG_INST, 's_'.$inert_id.'_'.$url_filename, S3::ACL_PUBLIC_READ); } catch (Exception $e){ // obsluga wyjatku... usuniecie rekordu z bazy, zaladowanie widoku bledu itd. } ?>
Niestety nic to nie daje. W konfiguracji mam wyłącznie błędów (sugerowane na produkcji). W logu dostaje coś takiego:
<?php 2009-01-11 19:44:54 +01:00 --- error: Nieobsł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 ?>
w lini tej jest wspomniane wczesniej generowanie błędu:
<?php trigger_error(sprintf("S3::putObject(): [%s] %s", $rest->response->error['code'], $rest->response->error['message']), E_USER_WARNING); ?>
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