初心java--異常

3127 ワード

コードを作成して実行すると、ほとんどの人がこのような状況に遭遇しました.パトロール
集の上で間違いがなくて、文法の上で間違いがなくて、しかし運行する時何行甚だしきに至っては数十行の赤い文が現れます
字はあなたに異常が現れたことを教えて、ここの異常は私たちが予想した外のことです.JAvaの異常に関するキーワードは5つあります.throw throws try catch finallyは文字通りthrowsもthrowも投げ出すという意味です.つまり、ある
つのメソッドの場合に異常が発生し、throwまたはthrowsで処理されると、このメソッドは異
呼び出されたメソッドは常に投げ出され、他のメソッドに呼び出されていない場合はJVM処理に走ります.
異なる点はthrowsが既存の異常を呼び出し者に投げて処理し,throwは新規であることである.
例外オブジェクトが呼び出し元に平投げされます.ここでtry catchは一緒に使用し、finallyはtry catchの後ろに接続して使用する必要があります.
try{}catch{}finally{}がつながっている場合tryは{}の異常を捕獲するために用いられ,catchは
理tryがキャプチャした異常はfinallyがtry{}catch{}文を実行するかどうかにかかわらず実行することを示し,
finallyの後ろのコード.
try{}catch{}finally{}の具体的な使い方については、次のコードを参照してください.
package cn.tan.lesson2;
import java.io.File;
import java.io.IOException;

/**
 *       
 * 
 * @author */
public class ExceptionTest {

	/**
	 *    
	 * @throws IOException 
	 */
	public static void main(String[] args) {
		ExceptionTest et = new ExceptionTest();
		//  sample       test  
		et.createFile("test//abc.txt");
	}

	/**
	 *       
	 * @throws IOException 
	 * 
	 * @throws Exception
	 */
	public void createFile(String fileName)  {
		//      File  
		File file = new File(fileName);
		try {
			//       
			file.createNewFile();
			System.out.println("      !");
		} catch (IOException e) {
			//        
			System.out.println("toString:" + e.toString());
			System.out.println("getMessage:" + e.getMessage());
			e.printStackTrace();
	} finally {
			System.out.println("   finally    ");
		}

	}

}

プログラムに異常が発生した以上、プログラムがどこで異常が発生しているのかを知るにはどうすればいいのでしょうか.について
例外を印刷する方法はjavaで3種類あります:e.toString();//異常クラスおよびエラーの情報e.getMessage();//エラーメッセージe.printStackTrace();//異常クラス、エラーの情報、エラーが発生した行、上段コードの出力結果は次のとおりです.
toString:java.io.IOException:           。
getMessage:          。
   finally    
java.io.IOException:           。
	at java.io.WinNTFileSystem.createFileExclusively(Native Method)
	at java.io.File.createNewFile(File.java:883)
	at cn.tan.lesson2.ExceptionTest.createFile(ExceptionTest.java:34)
	at cn.tan.lesson2.ExceptionTest.main(ExceptionTest.java:20)

 
throwsとthrowの使い方については、メソッドを定義するときに異常を投げ出すことです.たとえば、上の2つのメソッドです.throwsでは、次のように定義する必要があります.
public static void main(String[] args) throws IOException {
		ExceptionTest et = new ExceptionTest();
		//  sample       test  
		et.createFile("test//abc.txt");
	}
public void createFile(String fileName) throws IOException {		//      File  
		File file = new File(fileName);
			//       
			file.createNewFile();
			System.out.println("      !");
}								 

最初にjavaに触れたときに印刷された1行の異常情報を見て最初の反応は頭が大きくなったが、実はそうではなく、自分が書いたプログラムの呼び出し脈絡に基づいて一歩一歩探してみると、すべての赤いフォントが1行のコードを指していることがわかる.