sql語句本身出現錯誤,即bad sql
在serviceimpl中,
public void updateOrder (Integer id, String d, boolean isS)throws Exception {
System.out.println("here**************");
ParamMap param = new ParamMap();
param.seti(id);
param.setTd(d);
String id =null;
try{
id = mapper.selectID(param);
}catch(Exception e){
System.out.println("sql語句執行錯誤,錯誤信息 爲:");
e.printStackTrace();
}
}
這樣的話即使mapper中的sql語句出錯,tryCatch也無法捕獲到,依然會報錯,也不會到catch塊中執行,同時瀏覽器中也會報錯。
而如果在service層中拋出這個異常,向上拋到controller中,在controller中進行trycatch捕獲異常,此時可以打印出錯誤信息,瀏覽器也不會報錯。
controller:
try{
order_service.updateOrder(88,"uni076",true);
}catch(Exception e){
System.out.println("sql語句執行錯誤,錯誤信息 爲:");
e.printStackTrace();
}
serviceimpl:
void updateOrder(Integer id, String d, boolean isS)throws Exception{}
注意:因爲是針對這個方法拋出的異常,如果這之中有很多的sql語句都出現了錯誤,那麼他只能拋出異常後得到第一個sql語句的異常信息
因爲在sql異常後的代碼都不會執行了,而在這個serviceimpl的一個方法裏,可能涉及到很多的mapper方法,throws Exception 是寫在這個方法上的。