Javaプレミアムプログラミング4-姜国海
5427 ワード
①パッケージ
②異常処理
③検査異常
④カスタム例外クラス
⑤多態と異常
オーバーライド関数は、オーバーライドされた関数に宣言されていないチェック例外を投げ出すことはできません.オーバーライドされた関数よりもアクセス権が低いか、または等しいオーバーライド関数のみが使用できます.
class Student {
public int age;
public Student(){
this.age = 0;
}
public int getAge() {
return age;
}
public void setAge(int age){
this.age = age;
}
}
eclipse set get
, set
②異常処理
:
1.string:
2. ,
3. :
Throwable error Exception
error: ,
Exception:
NullPointerException:
IndexOutOfBoundsException:
ArithmeticException:
RuntimeException: ,
0 : INF
ClassCastException:
Eg:
class Fruit {
}
class Apple extends Fruit {
}
Fruit f;
Apple a;
f = a; // ,
if(f instanceof Apple){//
a = (Apple) f; //
}
if(null instanceof Apple){// false
}
Eg:
if(f instanceof string[]){}
instanceof
checked exception
Exception RuntimeException
③検査異常
FileInputStream file = new FileInputStream ('a.txt');
int c = file.read;
file.close();
,
1.try{} catch{}
unreachable: java
Eg:while(false)
catch
catch
finally: ,return
try{}
finally{
..//
}
getMessage()
getCause()
while(Throwable e){
while(e!==null){
System.out.println(e.getMessage());
e = e.getCause();
}
}
e.printStackTrace();
2. throws Exception
public static void a() throws Exception ,...{// Throwable
}
class A {
void a(){
try{
}catch(java.io.IOException){
// try , ,
}
}
}
④カスタム例外クラス
pubic class MyException extends Exception {
private int pains = 0;
public MyException (String message, Exception e,int pains){
super(message,e);
this.pains = pains;
}
}
void a() throws AException{
try{
}catch(BException e){
throws new AException(e);//
}
}
⑤多態と異常
オーバーライド関数は、オーバーライドされた関数に宣言されていないチェック例外を投げ出すことはできません.オーバーライドされた関数よりもアクセス権が低いか、または等しいオーバーライド関数のみが使用できます.