用try-catch和try-catch-finally来处理异常
若有多个异常,可分别用不同的catch捕获处理
处理多个异常注意异常捕获的顺序,小的在前,大的在后
在try-catch块执行之后,try-catch外的代码其他语句会继续按顺序执行
一、try-catch(多catch块)-finally
(1)try块:负责捕获异常,一旦try中发现异常,程序的控制权将被移交给catch块中的异常处理程序。【try语句块不可以独立存在,必须与 catch 或者 finally 块同存】
(2)catch块:如何处理?比如发出警告:提示、检查配置、网络连接,记录错误等。执行完catch块之后程序跳出catch块,继续执行后面的代码。
·编写catch块的注意事项:多个catch块处理的异常类,要按照先catch子类后catch父类的处理方式,因为会【就近处理】异常(由上自下)。
(3)finally:最终执行的代码,用于关闭和释放资源等
一、try-catch(多catch块)-finally
(1)try块:负责捕获异常,一旦try中发现异常,程序的控制权将被移交给catch块中的异常处理程序。【try语句块不可以独立存在,必须与 catch 或者 finally 块同存】
(2)catch块:如何处理?比如发出警告:提示、检查配置、网络连接,记录错误等。执行完catch块之后程序跳出catch块,继续执行后面的代码。
·编写catch块的注意事项:多个catch块处理的异常类,要按照先catch子类后catch父类的处理方式,因为会【就近处理】异常(由上自下)。
(3)finally:最终执行的代码,用于关闭和释放资源等
多种catch块捕获多种异常
finally放一些最终执行的代码
try{
//一些会抛出异常的方法
}catch (Exception e){
//处理该异常的代码块
}catch(Exception e){
//处理该异常的代码块
}
从子类到父类
Scanner input = new Scanner(System.in); try{ System.out.println("请输入第一个数:"); int one = input.nextInt(); System.out.println("请输入第二个数:"); int two = input.nextInt(); System.out.println("两数相除的结果为:"+one/two); }catch(InputMismatchException e){ System.out.println("你应该输入整数"); }catch(ArithmeticException e){ System.out.println("除数不能为0"); }catch(Exception e){ System.out.println("我是不知名异常"); }finally{ //最终代码 }
处理完异常后进行的善后工作(如关闭一些连接,一些打开的文件):用finally语句块
处理异常的顺序:先小后大。先子类后父类
当一段程序中抛出多个异常时,使用多个catch块进行处理
try catch处理异常例子:
子类在前,父类在后
处理异常0
处理异常方法
java异常处理
try-catch以及try-catch-finally
try{ //一些会抛出异常的方法 }catch(Exception e){ //处理该异常的代码块 }
例如
try{ System.out.println("请输入你的年龄:"); Scanner input = new Scanner(System.in); int age = input.nextInt(); System.out.println("十年后你"+(age+10)+"岁"); }catch(InputMismatchException e){ System.out.println("你应该输入整数!"); } System.out.println("程序结束");
多重catch语句:(先子类后父类)
多重catch:先子类exception后父类exception
异常处理
try{
//一些会抛出异常的方法
}catch(Exception e){
//处理该异常的代码块---先子类后父类 从小到大
}finally{
//最终将要执行的一些代码
}
如果try语句块中的方法确实抛出异常,则抛出异常的终止执行,程序的控制权将交给catch块中的异常处理程序。
2.写多重catch语句块时,从小到大,子类到父类写。
Scanner input = new Scanner(System.in);里的System.in是什么意思
还有int one = input.nextInt();这个input.nextInt()又是什么意思啊
System.in是System(系统)类,in是System的输入流
input.nextInt()作用是在控制台输入int类型的数据
InputMismatchException,Java中的异常,检测是否为数字
finally语句块
try-catch-finally
多重catch块
try-catch
try{ //一些会抛出异常的方法 } catch (Exception e) { //处理该异常的代码块 } catch (Exception2 e) { //处理Exception2的代码块 }..(n个catch块).. { } finally { //最终将要执行的一-些代码 } 无论是否发生异常,finally 代码块中的代码总会被执行。
当保护代码块中发生一个异常时,会终止执行,程序的控制权将被移交给catch块中的异常处理程序。
多重catch块:可以在 try 语句后面添加任意数量的 catch 块。
保护代码中发生异常,异常被抛给第一个 catch 块。如果抛出异常的数据类型与 ExceptionType1 匹配,它在这里就会被捕获。如果不匹配,它会被传递给第二个 catch 块。如此,直到异常被捕获或者通过所有的 catch 块。
处理异常的基本语法: try-catch以及try-catch-finally try{ //- -些会抛出异常的方法 } catch (Exception e) { //处理该异常的代码块 }
catch的顺序子类在前,父类在后。
try会抛出很多中类型的异常,该如何处理?
答:使用多种catch块的语法,但要注意顺序问题,先子类后父类。
如果try抛出异常将会发生什么呢?
答:抛出异常的方法会终止执行,程序的控制权将被移交给catch块中异常处理程序。
异常处理
try-catch以及try-catch-finally
try{ //一些会抛出异常的方法 }catch(Exception e){ //处理该异常的代码块 }catch(Exception2 e){ //处理该异常的代码块 }finally{ //最终将要执行的一些代码 }