I ran into an issue today where I was not seeing the rest_framework.views.exception_handler do what I thought it should be doing. It turned out that I had imported View from rest_framework.views rather than importing APIView from rest_framework.views. The phrase "raised inside REST framework" was confusing as I was debugging this issue. I was unsure if that meant that I could raise those exceptions in my code or if it had to originate from within framework code.
I'm not sure if the proposed wording is ideal, I just wanted to point out what I found to be confusing.
The way to provide a default detail for APIException is to define a `default_detail` attribute on the subclass.
Defining a `detail` attribute without `default_detail` will not work, and will result in empty detail instead.
The documentation not match with the implementation. The APIException doesn't have detail parameter in the constructor class, actually doesn't have constructor method at all.