7.java自定义异常
*数组静态初始化时不能指定个数和大小int[][] a=new int[不能写][不能写]{{},{}}
可直接这样写int[][] a={{},{}}
*动态初始化 int[][] a=new int[4][5];4为必须指定的位置*a[行][列]
*二维数组要用两个for循环赋值遍历 外层<array.length 内层<array[i].length
*ctrl+t看类的结构图
~~~~~~~异常Exception~~~~~~~~~~
*两类 一般性异常 RuntimeException
*try catch finally
*jvm异常处理过程 中断程序运行-->打印异常发生的轨迹(e.printStsckTrace())
*子类异常要放在前面,父类异常放后面 finally 主要做资源释放工作
*try后面可以跟catch也可以跟finally,但必须只要有一个。finally块后面的代码不会被处理。
*throws 抛给调用者处理 throw 主动抛出异常对象,throw new Exception("123")
*RuntimeException是非受检异常(运行时异常),可以不用try,让虚拟机处理,Exception必须处理
*如果父类方法中没有声明抛出异常,那么在子类中复写此方法也不能抛出异常
*如果父类中方法声明抛出异常,则它的子类只能抛出和他一样的异常,或者父类异常的子类异常,也可以不抛
** 自定义异常 1 建立异常类 2 在需要判断的类中设置判断函数 3 在主方法中调用
class Person extends Exception {
private int b;
Person(String a,int b){
super(a);
this.b=b;
}
public int getb(){
return b;
}}
class Demo {
public static void main(String []a) {
int c=10;
int b=0;
try {
tool(c,b);
} catch (Person e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("异常数字为"+e.getb());
} }
private static void tool(int b, int c) throws Person {
// TODO Auto-generated method stub
if(c==0){
throw new Person("被零除了",c);
}}}
查看实例 《异常实例》