JustinK101 Posted June 24, 2007 Share Posted June 24, 2007 I have the following function: function backup_crypto_key($crypto_key) { if(file_exists('crypto_key.bak') || empty($crypto_key)) { return -1; } try { $fileObj = fopen('crypto_key.bak', 'w'); fwrite($fileObja, $crypto_key); } catch (Exception $e) { return $e; } @fclose($fileObj); return 0; } echo backup_crypto_key("123"); I broke the code on purpose in the call to fwrite() by passing in an invalid file pointer. I would have expected the catch to happen and output an error, but instead when I execute this code a warning is displayed and 0 is returned. How do I put the file I/O functions in a real try catch and acutally catch errors? Thanks. Quote Link to comment Share on other sites More sharing options...
JustinK101 Posted June 24, 2007 Author Share Posted June 24, 2007 Ok, rewrote the function above to: function backup_crypto_key($crypto_key) { if(file_exists('backup/crypto_key.bak') || empty($crypto_key)) { return -1; } $fileObj = @fopen('backup/crypto_key.bak', 'w'); if(!$fileObj) return -1; if(!(@fwrite($fileObj, base64_encode($crypto_key)))) return -1; fclose($fileObj); return 0; } This seems to work now, if either fopen() or fwrite() fail we return -1. I still don't understand why the try catch block didnt work, but whatever. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.