Nothing raised in functional test if exception is recued in controller?

Hi,
I'm puzzled why my functional tests are failing. I have the following
test:
    assert_raise ActiveRecord::RecordInvalid do
      post :create, :page_id => id_from_fixture, :body => "bla bla"
    end
    assert_redirected_to my_error_path

In my controller, I am catching the error:
    def create
      begin
        @page = current_user.pages.find(params[:page_id])
        do_some_stuff
      rescue ActiveRecord::RecordInvalid
         redirect_to my_error_path
       end
    end

When I run the test, it fails on the grounds that 'nothing was
raised'. But I know for sure that the error was raised, because when I
remove the assert_raise test and just check the redirect, the test
passes.

Is it because I already rescue in the controller that the assertion
doesn't see the error anymore?

A mistake in the above example: I'm checking
ActiveRecord::RecordNotFound of course (I have actually more rescue
clauses, including the ActiveRecord:RecordInvalid one).

Anyway, the test is failing regardless which rescue clause I enter.

You have handled the RecordInvalid exception in the controller itself.
Once you have handled the exception you cannot test it using
assert_raise

Ex below:

Ganesh,
Thanks for the explanation. I thought it might be related to me
handling the exception in the controller.

But if I don't handle it in the controller, how do I handle it? In the
example you give, the controller just throws the exception and it
never gets handled by my application, right.

My guess would be to make a special exception handler in the
application controller? But which method do I need to override to make
my own rescue handler? I'm only familiar with the begin/rescue
construct and I must say the books and documentation I have used up to
now are very succinct on exception handling. Always a weak point I
find, where error handling is actually the most important thing!

Dirk.