异常
异常错误代码
public class Demo01 {
public static void main(String[] args) {
/* new Demo01().a();
}
public void a(){
b();
}
public void b(){
a();
}
System.out.println(11/0);
上面的都是出现异常的或者错误的
*/
}
}
异常处理机制
throwable:错误类型最大
public class Test {
public static void main(String[] args) {
int a=1;
int b=0;
//Ctrl+alt+t
//异常从小到大捕获
try {
new Test().a();
System.out.println(a/b);
} catch (Error e) {
System.out.println("111111111111");
} catch (Exception e) {
System.out.println("22222222");
}
//finally :可以不要finally 假设I/O,资源,关闭需要用到finally
}
public void a(){
b();
}
public void b(){
a();
}
}
public class Demo02 {
public static void main(String[] args) {
try {
new Demo02().test(1,0);
} catch (ArithmeticException e) {
e.printStackTrace();
}
}
//假设这个方法中,处理不了这个异常,方法上抛出异常
public void test(int a,int b) throws ArithmeticException{
if (b==0){
//主动抛出异常,一般在方法中使用
throw new ArithmeticException();
}
}
}
自定义异常
public class MyException extends Exception{
//传递数字>10
private int detail;
public MyException(int a) {
this.detail=a;
}
//toString异常的打印信息
@Override
public String toString() {
return "MyException{" + detail + '}';
}
}
public class Test {
//可能存在的方法
static void test(int a) throws MyException{
System.out.println("传递的参数为:"+a);
if (a>10){
throw new MyException(a);//抛出
}
System.out.println("ok");
}
public static void main(String[] args) {
try {
test(11);
} catch (MyException e) {
System.out.println("MyException=>"+e);//e是异常类MyException中的返回值
}
}
}
public class MyException extends Exception{标签:int,MyException,System,public,Day14,void,out From: https://www.cnblogs.com/xclxcl/p/16744041.html
//传递数字>10
private int detail;
public MyException(int a) {
this.detail=a;
}
//toString异常的打印信息
@Override
public String toString() {
return "MyException{" + detail + '}';
}
}