Exceptions are thrown (bubbled) upward. So it can be catched by whoever is calling the adapter methods.
So maybe you need to consume an adapter object and call its save or delete methods inside a try catch block and then in the catch block you may call a method of your own class.
The following is what I have in mind.
class AdapterEX : DataAccessAdapter
{
public bool SaveEntity(.....)
{
try
{
base.SaveEntity(......);
}
catch
{
MyExceptionHandler();
}
}
}