Re: Exceptions and Errors

From: Date: Tue, 13 Apr 2004 19:23:08 +0000
Subject: Re: Exceptions and Errors
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-9113@lists.php.net to get a copy of this message
Hello Wez, SQLite only throws exceptions from constructors. This is necessary to get the "constructor failed" information. It works using the support functions from main/main.c/main/php.h: typedef enum { EH_NORMAL = 0, EH_SUPPRESS, EH_THROW } error_handling_t; PHPAPI void php_set_error_handling(error_handling_t error_handling, zend_class_entry *exception_class TSRMLS_DC); #define php_std_error_handling() php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC) php_set_error_handling(() sets the mode and class_entry. php_std_error_handling() resets the mode and class entry. EH_NORMAL => Standard behavior = no exceptions EH_SUPPRESS => Neither throw an exception nor show/log the error EH_THROW => Throw an exception if no excpetion is pending If exception_class == NULL then a standard exception will be generated. Monday, April 12, 2004, 11:31:46 PM, you wrote: > Note that sqlite does have an option to raise exceptions instead of errors. > I haven't tried this myself; Marcus will be able to advise more on how this > works. > --Wez. >> try { >> $db = new SQLiteDatabase('foo.db'); >> if ($db->query($sql)) { >> // fetch rows >> } else { >> // handle error >> } >> } catch { >> // handle exception >> } >> >> It's really crazy to need to mix both types of error handling within >> the same block of code. -- Best regards, Marcus mailto:helly@php.net

« previous php.internals (#9113) next »