Looking at App::uses(), it expects the first parameter to be a classname, 
rather than a file name

Perhaps doing App::uses('ServiceUnavailableException', 'Lib'), and renaming 
the file to ServiceUnavailableException.php might be better, and more in 
keeping with the convention of one class per file.

When Cake bootstraps its own exceptions (in lib/Cake/bootstrap.php), it 
does a require CAKE . 'Error' . DS . 'exceptions.php';  You could possibly 
follow their lead, and bundle all your exceptions in 
app/Error/exceptions.php, then require that from your bootstrap. Then you 
wouldn't need to use App::uses() at all.

On Friday, 30 November 2012 09:32:34 UTC+10, mercury12 wrote:
>
> Then I also put "App:uses()" inside bootstrap and inside controller class.
> But still I got the same error.
>
>
> On Friday, November 30, 2012 1:29:20 AM UTC+2, Reuben wrote:
>>
>> You would probably need to have the App::uses() in your controller, 
>> rather than the bootstrap.
>>
>> I'm not sure what the best method of including the new exception type, 
>> from the bootstrap, other than a include_once() statement.. and that 
>> doesn't look nice.  I've always been a bit lazy and have just included the 
>> class definition for the new exception directly in the bootstrap.php, and 
>> that's not particularly nice either.
>>
>> Regards
>> Reuben Helms
>>
>> On Friday, 30 November 2012 09:20:30 UTC+10, mercury12 wrote:
>>>
>>> I need to give a *503 Service Unavailable* HTTP header.
>>>
>>> Normally I use these for 404 and 500 codes
>>>
>>> throw new NotFoundException();throw new InternalErrorException();
>>>
>>> But I couldn't find relevant exception for 503 in CakePHP 2.2?
>>>
>>> In my "app/lib/AppExceptionHandler.php" file I have this class/function 
>>> that handles errors.
>>>
>>> class AppExceptionHandler {
>>>     public static function handle($error) {
>>>      }
>>>
>>> Edit:
>>>
>>>    - 
>>>    
>>>    Inside "*app/Lib*" folder I created a file named "*MyExceptions.php*". 
>>>    I wrote the following code inside this file:
>>>    
>>>    class ServiceUnavailableException extends CakeException {
>>>    protected $_messageTemplate = 'Service is not available now';
>>>    }
>>>    
>>>    - 
>>>    
>>>    In "*bootstrap.php*" I wrote this:
>>>    
>>>    App::uses('MyExceptions', 'Lib');
>>>    - 
>>>    
>>>    Then inside "*MyNewController.php*" file I wrote this:
>>>    
>>>    throw new ServiceUnavailableException("tryout");
>>>    
>>> But then I get this error when I throw this exception:
>>>
>>> Fatal error: Class 'ServiceUnavailableException' not found in
>>>  /var/www/vhosts/example.com/httpdocs/app/Controller/MyNewController.php
>>>  on line 3560
>>> Warning (2): Cannot modify header information - headers already sent 
>>> by(output started at 
>>> /var/www/vhosts/example.com/httpdocs/app/Controller/MyNewController.php:3560)[APP/Lib/AppExceptionHandler.php,
>>>  line 19]
>>>
>>> What do I miss? Thank you
>>>
>>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
Visit this group at http://groups.google.com/group/cake-php?hl=en.


Reply via email to