09 java的代码的执行顺序和异常处理

xiaoxiao2021-02-27  121

java类的执行顺序过程:

1 静态的属性成员初始化(类属性, 不管这个类创建了多少个对象,所有的对象共用这个成员变量)

2 static区域的代码

3 main函数代码

//在main函数里创建对象时才会有4, 5步

4 类属性成员初始化

5 构造函数


测试代码:

public class Main { public static int num = 88; public int num2 = 789; static { System.out.println("in static zone: num " + num); } public Main() { System.out.println("num2 = " + num2); } public static void main (String args[]) { System.out.println("num = " + num); Main m = new Main(); } }

输出结果: in static zone: num 88 num = 88 num2 = 789



java代码里的异常处理:

try { 有可能会发生异常的代码 }catch (异常类型 ) { 异常处理的代码 }finally { 一定要执行的代码 }

//当使用java里封装好的类时,如类里会有抛出(throw)异常的可能时,我们就需要用”try … catch …”的方式来包含有可能抛出异常的代码。也可以不用”try …catch”方式来处理,只要在函数声明会抛出异常,由调用此函数者来处理异常.


在java里也可以从Exception类扩展出一个自定义的异常类, 如:

class MyException extends Exception { private static final long serialVersionUID = 3461899582505930473L; //自动产生一个序列号,用于区分异常的类型 private String error; //存放异常信息字符串 public MyException(String st) { //构造函数,用于指定此异常类型的字符串信息 error = st; } public String toString() { //当用System.out.println(对象)调用时,输出异常信息字符串内容 return error; } }

//自定义的异常类在代码里的使用.

class Student { public void eat(String food) throws MyException { //声明此函数有可能会抛出异常 if (food == "fish") { //当调用此eat(...)函数时,如传入的字符串内容为"fish"时就抛出异常 //System.out.println("no fish"); throw new MyException("raw fish"); } System.out.println("food " + food); } } public class Main { public static void main(String[] args) { Student s = new Student(); //异常处理 try { s.eat("fish"); } catch (MyException e) { System.out.println(e); } } }
转载请注明原文地址: https://www.6miu.com/read-16935.html

最新回复(0)