java异常的处理探讨

//java异常 

/*

1,了解java 中的异常处理机制,有三种操作

a,声明异常 

b,抛出异常 

c,捕获异常

2,学会使用try-catch-finally来处理异常

3,学会如何声明异常和抛出异常

4,学会创建自己的异常

 

*/

 

//2,学会使用try-catch-finally来处理异常

 

/*使用try-catch

*/

public class TryCatchTest {

 

public static void main(String[] args) {

int number,value;

try{

number = 0;

value = 3/number;

//可能会抛出ArithmeticException异常,使用catch老捕获这个异常

}catch(ArithmeticException e){

e.printStackTrace();

System.out.println("错误:被0整除");

}

}

}

 
 
/*

定义一个try-catch-finally来捕获异常

*/

public class finallyTest {

 

public static void main(String[] args) {

 

try{

int[] a = new int[3];

a[3] =3;//数组超越边界

 

 }catch(ArithmeticException e){

//Exception类是从Throwable继承的,同时也有其方法

//toString();对当前异常对象的描述

//getMessage();获取返回的信息

//printStackTrace();打印当前异常对象详细消息的字符串

 System.out.println(" e.toString()"+ e.toString());

 System.out.println("e.getMessage()"+ e.getMessage());

 System.out.println ("e.hashCode()"+e.hashCode());

 System.out.println ("e.printStackTrace()");

e.printStackTrace();

 System.out.println("发生了异常!");

 }finally{

 //不管前面是否执行finally都会输出

 System.out.println("最后执行这句话!");

 }

}

}
 

 

 

 

//3,学会如何声明异常和抛出异常

 

/*会用关键字throw是在try中来声明,关键字throws是在方法体中声明

如果一个方法可能产生异常,那么该方法要么需要try-catch来捕获

并处理他们,要么主动声明抛出,否则该程序将无法编译,除非是编译

过成中的异常

throws关键字用在方法声明中

 

throw用在try块中来声明并抛出一个异常

public void go(){

try{

thorw new IOException("文件不存在!");

}catch(Exception e){

System.out.println(e.getMessage());

}

}
 

 


 

import java.io.*;

 

public class throwsTest {

 

public static void main(String[] args){

 

throwsTest thorwstest = new throwsTest();

 

try{

thorwstest.readFile();

}catch(IOException e){

e.printStackTrace();

}

}

 

 

//readFile() 方法抛出IOException

public void readFile() throws IOException{

 

FileInputStream fis = new FileInputStream("hello.txt");

int b;

b = fis.read();

while(b!=-1){

System.out.println((char)b);

b = fis.read();

}

fis.close();

}

}

*/

 

/*运行结果,如果没有hello.txt就出现下面的 ,如果有就输入字符

 * java.io.FileNotFoundException: hello.txt (系统找不到指定的文件。)

at java.io.FileInputStream.open(Native Method)

at java.io.FileInputStream.<init>(Unknown Source)

at java.io.FileInputStream.<init>(Unknown Source)

at java面向对象设计.throwsTest.readFile(throwsTest.java:33)

at java面向对象设计.throwsTest.main(throwsTest.java:23)

 

 

*/

 
 

 

 

//4,学会创建自己的异常

//下面的代码中定义了声明了一个异常,并捕获,

 

public class TryCatchTest {

 

public static void main(String[] args) {

int number,value;

try{

number = 0;

value = 3/number;

 

}catch(Exception e){

e.printStackTrace();

System.out.println("错误:被0整除");

}

}

 

}

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(JAVA异常)