這篇文章是基於達內課程-安卓頁面和元件練習專案(航空訂票系統)專案基礎上寫的
wrongpasswordexception
usernamenotfoundexception
1、選擇乙個合適的父類
2、只需要新增何止的構造方法
在登入頁增加異常處理,新增兩個異常類
wrongpasswordexception
public
class
wrongpasswordexception
extends
exception
public
wrongpasswordexception(string message)
public
wrongpasswordexception(string message, throwable cause)
public
wrongpasswordexception(throwable cause)
protected
wrongpasswordexception(string message, throwable cause, boolean
enablesuppression, boolean writablestacktrace)
}
usernamenotfoundexception
public
class
usernamenotfoundexception
extends
exception
public
usernamenotfoundexception(string message)
public
usernamenotfoundexception(string message, throwable cause)
public
usernamenotfoundexception(throwable cause)
protected
usernamenotfoundexception(string message, throwable cause, boolean
enablesuppression, boolean writablestacktrace)
}
將userservice的登入方法改為
如果密碼不正確 throw new wrongpasswordexception();
如果使用者名稱不存在throw new usernamenotfoundexception();
//需要新增管道
public
boolean
login(string username, string password) throws wrongpasswordexception, usernamenotfoundexception else}}
throw
new usernamenotfoundexception();
}
mainactivity中處理登入的方法改為
呼叫登入方法時處理異常
private void dologin() catch (wrongpasswordexception e) catch (usernamenotfoundexception e)
/* log.d(tag,"登入是否成功"+b);
if (b) else */
}
對於自己程式中的警告應該關注
雖然警告錯誤很多,但是需要注意的資訊是很少的,只需要兩點就可以快速定位錯誤
1、錯誤型別
usernamenotfoundexception
2、自己包下檔案出錯行號
userservice 58行
這個栗子是基於算式計算器實現來寫的
formula 類改為
構造方法中判斷輸入的算式是否為正確的算式
public
class formula
this.f = f;
}public
class diedaiqi
//取出下一條
public string next()
}//求值運算
public
double
eval() throws formulaexception else
if(s.matches("[+\\-]"))else
}//數字應該比符號多乙個
if(list1.size()-list2.size()!=1)
//迴圈執行加減
while (list2.size()>0)
return list1.get(0);
}private
double
jisuan(double a, string s, double b)
return r;}}
formulaactivity的計算方法改為
private
void
f1() */
//計算結果
double r = formula.eval();
textview.settext(string.valueof(r));
} catch (formulaexception e)
}
異常 自定義異常
package test 01 練習 計算成績的平均值 異常的情況 成績為負數 me 總結 練習寫好乙個程式,思路最重要要做到心中有數,當計算成績的平均值,定義乙個方法,最後這個方法返回平均數即可 關鍵在於 方法的引數是啥?返回值型別是啥?當然是乙個陣列 可變引數組int grades int型別 ...
異常 自定義異常
自己定義的異常類,也就是api中的標準異常類的直接或間接的子類 用自定義異常標記業務邏輯的異常,避免與標準異常混淆 1 建立自定義異常類 2 在方法中通過throw關鍵字拋出自定義異常 public class customexception extends exception 3 呼叫throws...
異常 自定義異常
throwable是所有異常的根。error是錯誤資訊,exception是異常資訊。error 是程式中無法處理的錯誤,表示執行應用程式 現了嚴重的錯誤。此類錯誤一般表示 執行時jvm出現問題。exception 程式本身可以捕獲並且可以處理的異常。捕獲異常 try,catch,finally 丟...