0

This is a general question regarding exception handing for exceptions thrown in onther people's code.

I am using the following Codeigniter PHP library: https://github.com/sepehr/ci-mongodb-base-model

which relies upon this library for MongoDB: https://github.com/alexbilbie/codeigniter-mongodb-library/tree/v2

If I call a function in the first library, and it then calls one from the second. Sometimes the second library throws exceptions which I want to be able to deal with in my own code, but there is a try-catch statement around the exception throwing call, which means that it is dealt with before I get a chance to (I just prints the exception to the screen).

My question is:

Without modifying all of the functions in the first and second libraries (i.e. removing all of the try catches), how can I deal with the exception that is thrown?

EDIT

This is how the functions in the second library are arranged:

class SomeClass 
{
    function do_something()
    {
        ...
        try {
            ...
        }   
        catch {
            $this->_show_error('Update of data into MongoDB failed: ' . $exception->getMessage(), 500);
        }
    }

    function _show_error($error_message = '', $response_code = 500)
    {
        //Inbuilt Codeigniter helper function which can be disabled from printing the error to the screen 
        show_error($error_message, $response_code);
    }
}

Although I can disable the error from being printed (which is of course just for debugging), I still have no way of knowing that it occurred and handling it.

2

1 Answer 1

1

(should be a comment rather than an answer, but it's a bit long)

just prints the exception to the screen

Really? Are you sure?

Did you check it doesn't trigger an error instead of an exception and you're running this on a system which is not configured as a production server?

If so then I'd steer way clear of this as a library.

(I sincerely doubt anyone would write code that dumb and publish it without lots of warnings)

Sign up to request clarification or add additional context in comments.

2 Comments

I have edited above. The printing to the screen can be disabled, but I still have no way to handle the exception.
Please could you direct me to the relevant section? I have read the part on error logging.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.