java开始到熟悉72-76

                 本次内容:异常机制

1、为什么需要异常

java开始到熟悉72-76

java开始到熟悉72-76

2、异常

java开始到熟悉72-76

java开始到熟悉72-76

3、error类

java开始到熟悉72-76

4、exception类

java开始到熟悉72-76

5、exception类中的unchecked exception

java开始到熟悉72-76

    举例:

java开始到熟悉72-76

java开始到熟悉72-76

6、常用异常处理方法

java开始到熟悉72-76

a.try

java开始到熟悉72-76

注意:一个try语句块至少得带一个finally语句块或catch语句块

 1 package array;

 2 /**

 3  * exception

 4  * @author acer

 5  *

 6  */

 7 public class exception {

 8     public static void main(String[] args)

 9     {

10         try {

11             Thread.sleep(1000);

12         } catch (InterruptedException e) {

13             // TODO Auto-generated catch block

14             e.printStackTrace();

15         }

16     }

17 }
 1 package array;

 2 /**

 3  * try catch finally

 4  */

 5 import java.io.FileNotFoundException;

 6 import java.io.FileReader;

 7 import java.io.IOException;

 8 

 9 public class trycatch {

10     public static void main(String[] args)

11     {

12         FileReader f=null;

13         try {

14             f=new FileReader("d:/a.txt");

15             char c,d;

16             c = (char)f.read();

17             d = (char)f.read();

18             System.out.println(""+c+d);

19         } catch (FileNotFoundException e) {

20             e.printStackTrace();

21         } catch (IOException e) {

22             e.printStackTrace();

23         }finally{

24                 try {

25                     if(f!=null)

26                     f.close();

27                 } catch (IOException e) {

28                     e.printStackTrace();

29                 }

30             }

31     }

32 }

运行结果:
ab

(说明:a.txt文本中的内容:abcdefg)

不同内容:try,catch,finally,return执行顺序

代码1:

 1 package array;

 2 

 3 import java.io.FileInputStream;

 4 import java.io.FileNotFoundException;

 5 import java.io.IOException;

 6 

 7 /**

 8  * 测试try,catch,finally,return执行顺序

 9  * @author acer

10  *

11  */

12 public class exeshunxu {

13     public static void main(String[] args)

14     {

15         String str=new exeshunxu().openfile();

16         System.out.println(str);

17     }

18     String openfile()

19     {

20         try {

21             System.out.println("aaa");

22             FileInputStream fi=new FileInputStream("d:/a.txt");

23             int a=fi.read();

24             System.out.println("bbb");

25             return "try";

26             

27         } catch (FileNotFoundException e) {

28             System.out.println("catchingchild..................");

29             e.printStackTrace();

30             return "catch filenotfoundexception";

31         } catch (IOException e) {

32             System.out.println("catchingfather................");

33             e.printStackTrace();

34             return "catch ioexception";

35         }finally{

36             System.out.println("finally...............");

37             return "finally";

38         }

39     }

40 }

41     

运行结果:
aaa
bbb
finally...............
finally

代码2:

 1 package array;

 2 

 3 import java.io.FileInputStream;

 4 import java.io.FileNotFoundException;

 5 import java.io.IOException;

 6 

 7 /**

 8  * 测试try,catch,finally,return执行顺序

 9  * @author acer

10  *

11  */

12 public class exeshunxu {

13     public static void main(String[] args)

14     {

15         String str=new exeshunxu().openfile();

16         System.out.println(str);

17     }

18     String openfile()

19     {

20         try {

21             System.out.println("aaa");

22             FileInputStream fi=new FileInputStream("d:/a.txt");

23             int a=fi.read();

24             System.out.println("bbb");

25             return "try";

26             

27         } catch (FileNotFoundException e) {

28             System.out.println("catchingchild..................");

29             e.printStackTrace();

30             return "catch filenotfoundexception";

31         } catch (IOException e) {

32             System.out.println("catchingfather................");

33             e.printStackTrace();

34             return "catch ioexception";

35         }finally{

36             System.out.println("finally...............");

37         }

38     }

39 }

40     

运行结果:
aaa
bbb
finally...............
try

代码3:

 1 package array;

 2 

 3 import java.io.FileInputStream;

 4 import java.io.FileNotFoundException;

 5 import java.io.IOException;

 6 

 7 /**

 8  * 测试try,catch,finally,return执行顺序

 9  * @author acer

10  *

11  */

12 public class exeshunxu {

13     public static void main(String[] args)

14     {

15         String str=new exeshunxu().openfile();

16         System.out.println(str);

17     }

18     String openfile()

19     {

20         try {

21             System.out.println("aaa");

22             FileInputStream fi=new FileInputStream("d:/abcd.txt");

23             int a=fi.read();

24             System.out.println("bbb");

25             return "try";

26             

27         } catch (FileNotFoundException e) {

28             System.out.println("catchingchild..................");

29             e.printStackTrace();

30             return "catch filenotfoundexception";

31         } catch (IOException e) {

32             System.out.println("catchingfather................");

33             e.printStackTrace();

34             return "catch ioexception";

35         }finally{

36             System.out.println("finally...............");

37         }

38     }

39 }

40     

运行结果:
aaa
catchingchild..................
java.io.FileNotFoundException: d:\abcd.txt (系统找不到指定的文件。)
 at java.io.FileInputStream.open(Native Method)
 at java.io.FileInputStream.<init>(FileInputStream.java:138)
 at java.io.FileInputStream.<init>(FileInputStream.java:97)
 at array.exeshunxu.openfile(exeshunxu.java:22)
 at array.exeshunxu.main(exeshunxu.java:15)
finally...............
catch filenotfoundexception

(注释:D盘中有a.txt文件,但没有abcd.txt文件)

由此可得到执行顺序为:

>1、执行try,catch,给返回值赋值;

>2、执行finally;

>3、return;

(一般不要在finally中使用return语句)

7.

java开始到熟悉72-76

 1 package array;

 2 

 3 import java.io.FileNotFoundException;

 4 import java.io.FileReader;

 5 import java.io.IOException;

 6 /**

 7  * 抛出异常

 8  * @author acer

 9  *

10  */

11 public class throwexc {

12     public static void main(String[] args)

13     {    

14         try {

15             String str;

16             str = new throwexc().openfile();

17             System.out.println(str);

18         } catch (IOException e) {

19             e.printStackTrace();

20         }

21     }

22     String openfile() throws FileNotFoundException,IOException

23     {

24         FileReader fr=new FileReader("d:a.txt");

25         char c=(char)fr.read();

26         return ""+c;

27     }

28 }

java开始到熟悉72-76

 1 package array;

 2 

 3 import java.io.FileNotFoundException;

 4 import java.io.IOException;

 5 import java.text.ParseException;

 6 /**

 7  * 方法重写声明异常原则

 8  * @author acer

 9  *

10  */

11 class overexception{

12     public void method() throws IOException{}

13 }

14 class b extends overexception{

15     public void method() throws IOException{}

16 }

17 class c extends overexception{

18     public void method() throws FileNotFoundException{}

19 }

20 class d extends overexception{

21     public void method() throws IOException,ArithmeticException{}

22 }

23 class e extends overexception{

24     public void method() throws IOException,RuntimeException{}

25 }

26 class f extends overexception{

27     public void method() throws IOException,ParseException{}

28 }

8.

java开始到熟悉72-76

 1 package array;

 2 

 3 import java.io.File;

 4 import java.io.FileNotFoundException;

 5 

 6 public class handthrows {

 7     public static void main(String[] args)

 8     {

 9         File fr=new File("d:/b.txt");

10         if(!fr.exists())

11         {

12             try{

13                 throw new FileNotFoundException("File is not exist!");

14             }catch(Exception e){

15                 e.printStackTrace();

16             }

17         }

18     }

19 }

运行结果:
java.io.FileNotFoundException: File is not exist!
 at array.handthrows.main(handthrows.java:13)

(说明:手动抛出异常用的不多)

9.

java开始到熟悉72-76

 1 package array;

 2 

 3 import java.io.IOException;

 4 /**

 5  * 自定义异常

 6  * @author acer

 7  *

 8  */

 9 class MyException extends IOException{

10     public MyException(){

11         

12     }

13     public MyException(String message){

14         super(message);

15     }

16 }

17 public class myexception {

18     public static void main(String[] args)

19     {

20         try{

21             new myexception().test();

22         }catch(MyException e){

23         }

24     }

25     public void test()throws MyException{}

26 }

 

10.

java开始到熟悉72-76

11.

java开始到熟悉72-76

你可能感兴趣的:(java)