es por que el tipo de excepcion que arroja class.forName("laclase") no es de tipo SQLException sino que es de tipo java.lang.ClassNotFoundException y tu lo querias capturar en el de SQL. aqui esta la documentacion
http://java.sun.com/javase/6/docs/ap...a.lang.String)
tambien hubiera funcionado si hubieras puesto dos catch un praca cada tipo de exception.
ojala me haya explicado, saludos