# task(533458)熟悉Android頁面排版 ![](https://i.imgur.com/ICDBUo6.jpg) [Github連結](https://github.com/WytheTsao/CathayMovie.git) [Firebase連結](https://appdistribution.firebase.dev/i/ed1a77d417495f07) ## 2022/01/25 code review紀錄 1. 修改MovieModel內資料格式 2. 使用Gson或Fast JSON讀取JSON 3. try catch拿掉 4. <Code>java.lang.IndexOutOfBoundsException</Code>原因 5. RunTimeException原因 --- ### 越界錯誤 <Code>java.lang.IndexOutOfBoundsException</Code> 要取出index內的值,但程式內List index位置內並沒有值就會出現這個錯誤。 ### 非受檢例外 RunTimeException v.s Exception * RunTimeException:在程式中可以不使用<Code>try...catch</Code>捕捉。 * Exception:程式中必須使用<Code>try...catch</Code>捕捉。 非RunTimeException都必須使用catch捕捉錯誤, 而RunTimeException編譯器不會檢查出異常,當程式錯誤時沒有使用<Code>try...catch</Code>程式還是會編譯通過[1](https://medium.com/@clu1022/java筆記-exception-與-error-dbdf9a9b0909) ## 2022/01/28 code review紀錄 * Firebase 發布apk * LinearLayout拿掉 * px dp sp差別&介紹 android 分辨率 * onBindViewHolder * Java Exception類型、發生原因、處理方式 --- ### px Android 上的抽象單位。對應 160dpi 螢幕上的 px 數量。160dpi 情況下 1dp = 1px 。 ### dp android上的抽象單位,螢幕解析度160dpi狀態下,1dp = 1px。如果螢幕密度為320dpi,則1dp = 2px。 對應公式說明:px = dp * dpi / 160。 ### sp android上的文字單位,螢幕解析度160dpi狀態下,1sp = 1px。如果螢幕密度為320dpi,則1sp = 2px。 對應公式說明:sp = pt * dpi / 160。(1pt = 1/72 inch = 2.22sp) ### Java Exception | 例外名稱 | 發生原因 | | --- | ---| | ArithmeticException | 運算式產生的例外,例如:除數為0 | | ArrayIndexOutOfBoundsException | 陣列的索引值指定錯誤,例如:超出索引值 | | ArrayStoreException | 指定陣列內容錯誤時產生的錯誤 | | IndexOutOfBoundsException | 索引使用時超出範圍,這個類別是ArrayIndexOutOfBoundException的父類別 | | IllegalArgumentException | 呼叫方法時,傳遞錯誤的參數 | | NullPointerException | 使用物件時,該物件的參考值為null | | NumberFormatException | 將字串轉為文字時,產生無法轉換的錯誤 | | SecurityException | 企圖違反安全性的限制 | | ClassNotFoundException | 找不到指定的類別,可以發生在使用某個類別的方法,但卻找不到該方法所屬的類別 | | FileNotFoundException | 找不到指定的檔案 | | CloneNotSupportException | 在類別中使用clone()方法,但該類別未實作「Cloneable」介面 | | InterruptedException | 當某個執行緒中斷時,而另一個執行緒試圖使用「interrupt()」方法來中斷已停止執行的執行緒 | | IOException | 檔案、網路…的輸出、入錯誤時產生的例外 | ###### tags: `新人訓` `Meeting` `Android` `Code review`