Java异常处理分析
//继承Exception类public class MyExcwption extends Exception {// 传递数字>10; private int detail; public MyExcwption { this.detail = a; }// toString :异常打印信息 @Override public String
//继承Exception类public class MyExcwption extends Exception {// 传递数字>10; private int detail; public MyExcwption { this.detail = a; }// toString :异常打印信息 @Override public String toString() { return "MyExcwption{"+detail+'}'; }}public class Test {// 可能会存在异常的方法 static void testthrows MyExcwption{ System.out.println; if { throw new MyExcwption;//抛出 } System.out.println; } public static void main { try { test; } catch { System.out.println; } }}实际应用中的经验总结:处理运行时异常时,采用逻辑去合理规避同时辅助try catch处理在多重catch块后面,可以加一个catch 来处理可能会被遗漏的异常对于不确定的代
error通常是灾难性的致命错误,是无法控制和处理的,当出现这些异常时,Java虚拟机一般会选择终止线程;Exception通常情况下是可以被程序处理的,并且程序中应该尽可能的去处理这些异常。异常
1.什么是异常
public class Demo01 { public static void main(String[] args) { System.out.println(11/0); }}Exception in thread "main" java.lang.ArithmeticException: / by zeroat com.exception.Demo01.main(Demo01.java:5)
2.异常体系结构
Error:
Exception
error 和Exception的区别:
3.Java异常处理机制
4.处理异常
public class Test { public static void main(String[] args) { int a=1; int b=0;// 假设要捕获多个异常:从小到大 try {//监控区域 System.out.println(a/b); }catch (Error e){//catch(想要捕获的异常类型)捕获异常// System.out.println("程序出现异常,变量b不能为0");//手动 System.out.println("Error"); }catch (Exception e){ System.out.println("exception");//exception }catch (Throwable e) { System.out.println("Throwable"); }finally {//处理善后工作 System.out.println("finally"); }// finally可以不要, } } }
public class Test { public static void main(String[] args) { int a=1; int b=0; try { System.out.println(a/b); } catch (Exception e) { e.printStackTrace(); } }// 建设这个方法中处理不了这个异常,方法上抛出异常 public void test(int a,int b) throws ArithmeticException{ if (b==0){ thorw new ArithmeticException();//主动抛出异常,一般在方法中使用 } }}
5.自定义异常
步骤:
//继承Exception类public class MyExcwption extends Exception {// 传递数字>10; private int detail; public MyExcwption(int a) { this.detail = a; }// toString :异常打印信息 @Override public String toString() { return "MyExcwption{"+detail+'}'; }}
public class Test {// 可能会存在异常的方法 static void test(int a)throws MyExcwption{ System.out.println("传递参数为"+a); if (a>10){ throw new MyExcwption(a);//抛出 } System.out.println("OK"); } public static void main(String[] args) { try { test(11); } catch (MyExcwption e) { System.out.println(e); } }}
实际应用中的经验总结: