Does `EXCEPTION WHEN OTHERS THEN RAISE` do something?
yes, that exception does nothing but raise the same error out. also it serves to mask the real line number of the error. i'd remove that if I were you.
eg:
SQL> declare
2 v number;
3 begin
4 select 1 into v from dual;
5 select 'a' into v from dual;
6 exception
7 when others
8 then
9 raise;
10 end;
11 /
declare
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at line 9
vs:
SQL> declare
2 v number;
3 begin
4 select 1 into v from dual;
5 select 'a' into v from dual;
6 end;
7 /
declare
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at line 5
the line number in the first one is pointing to the raise instead of the real line number. it can make tracking down errors harder.