異常處理

異常處理

以前是和代碼打交道,現在到處見到的是異常,學習的過程中收集一些異常:
1、el表達式出錯
    ![el表達式出錯](https://img-blog.csdn.net/20150713095321610)
    問題所在(目前我所知道的):
    1)、指定類下沒有這個屬性,包括變量,方法
    2)、屬性拼寫錯誤
    3)、方法命名大小寫問題。
    public double getSubtotal(){
        BigDecimal d1 = new BigDecimal(book.getPrice()+"");
        BigDecimal d2 = BigDecimal.valueOf(count);
        return d1.multiply(d2).doubleValue();
    }
<td>${cartItem.subtotal }元</td>

2、空指針

java.lang.NullPointerException
    cart.servlet.CartServlet.add(CartServlet.java:42)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    cn.itcast.servlet.BaseServlet.service(BaseServlet.java:45)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
出錯原因,某個值爲null,根據指定的值,去重新改正。

3、程序出錯
4、路徑錯誤
最容易忽視的一個路徑錯誤情況是servlet類名修改後,沒有在WebServlet中修改配置。導致反覆訪問都出現路徑錯誤。
修改完servlet類名後,一定要在@WebServlet(“/servlet”)中修改回來。負責,雖然修改了servlet類名,可是要訪問servlet時,訪問的還是原先配置的那個路徑。

 @WebServlet("/OrderServlet")

5.hibernate中出現的錯誤
1)java封裝類與數據庫中的字段不符(找不到數據庫中的字段)
異常信息:
org.hibernate.exception.SQLGrammarException: could not extract ResultSet
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column ‘user0_.uname’ in ‘field list’
解決方法如標題
2)沒有映射hbm.xml文件
異常信息:
org.hibernate.MappingException: Unknown entity: entity.User
解決方法如標題
3)創建表失敗
這裏寫圖片描述

解決方法:查看映射文件中屬性名與實體類中的屬性名是否一致,如果都相同,查看主鍵生成方式與實體類中的類型是否一致。本例錯誤原因是,實體類中id類型爲String,自動生成id值爲number型,導致建表失敗。
(待完善)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章