Anyway I had found the solution using the pragma exception_init feature. Which is able to capture those error I want.

For example:

declare
db_not_avail exception;
pragma exception_init (db_not_avail,-2048);
begin
insert into abc@remotedb values (....);
exception
when db_not_avail then
do_something;
end;

This is working fine.

Thanks