错误处理
  能够检测并且进行错误处理的叫做异常,一般分为用户自定义异常,系统预定义异常。
  预定义异常
  一:除数是0的系统异常
  declare
  v_number Number(2):=10;
  v_zero Number(2):=0;
  v_result Number(5);
  begin
  --v_number/v_zero,会产生系统异常
  v_result:=v_number/v_zero;
  end;
  二:处理上面的异常
  declare
  v_number Number(2):=10;
  v_zero Number(2):=0;
  v_result Number(5);
  begin
  --v_number/v_zero,会产生系统异常
  v_result:=v_number/v_zero;
  Exception
  when ZERO_DIVIDE THEN
  DBMS_OUTPUT.put_line('除数不能为0');
  end;
  三:多异常处理
  declare
  v_result country.country_name%type;
  begin
  select country_name into v_result
  from country where country_name='BeiJing';
  DBMS_OUTPUT.put_line('the country name is '||v_result);
  exception
  when TOO_MANY_ROWS then
  DBMS_OUTPUT.put_line('There is TOO_MANY_ROWS error');
  when NO_DATA_FOUND then
  DBMS_OUTPUT.put_line('There is NO_DATA_FOUND error')
  END;
  常见的系统预定义异常
  1
  DUP_VAL_INDEX
  违反了性
  2
  LOGIN_DENIED
  用户名或密码错误
  3
  NO_DATA_FOUND
  没有发现数据
  4
  TOO_MANY_ROWS
  数据行太多
  5
  VALUE_ERROR
  算法或转换错误
  自定义异常
  调用自定义异常处理需要使用raise关键字处理
  一:自定义异常过程
  declare
  v_overNmber EXCEPTION; --定义异常处理变量
  v_salesNumber Number(9); --当前的订单数
  v_maxNumber Number(9):=500; --定义允许的大值
  begin
  --从表中取出数量
  select count(*) into v_salesNumber from sales;
  --比较当前单数和大的单数的,如果超过大单数,进行异常处理
  if v_maxNumber<v_salesNumber then
  --进行异常处理
  raise e_overNumber;
  end if;
  exception
  when e_overNumber then
  DBMS_OUTPUT.put_line('查到的单数超过大数,数据异常');
  end;