微信网站建设方案ppt,品牌网站首页设计,做京东商城网站,上海推广外包发生异常的情况有很多#xff0c;其中包括以下几大类#xff1a;1. 空指针异常#xff1b;2. 用户输入异常#xff1b;3. 多层异常捕获#xff1b;想要知道Java是如何处理异常的#xff0c;就需要掌握以下这三种异常的处理#xff1a;1.检查性异常#xff1a;最具代表的…发生异常的情况有很多其中包括以下几大类1. 空指针异常2. 用户输入异常3. 多层异常捕获想要知道Java是如何处理异常的就需要掌握以下这三种异常的处理1.检查性异常最具代表的检查性异常是用户错误或问题引起的异常这是程序员无法预见的。例如要打开一个不存在文件时 一个 异常就发生了这些异常在编译时不能被简单地忽略。2.运行时异常 运行时异常是可能被程序员避免的异常。与检查性异常相反运行时异常可以在编译时被忽略。3.错误 错误不是异常而是脱离程序员控制的问题。错误在代码中通常被忽略。例如当栈溢出时一个错误就发生了它们 在编 译 也检查不到的。如何捕获异常try和catch关键字将可能引发异常的代码段放在 Try 块中而将处理异常的代码放在 Catch 块中。Catch 语句的顺序很重要。发生异常时异常沿堆 栈向上传递每个 Catch 块都有机会处理它。通过将异常类型与 Catch 块中指定的异常名称相匹配可确定处理异常的 Catch 块。例如以下 Catch 块将捕获简单对象访问协议 (SOAP) 异常catch (SoapException e){Console.WriteLine(SOAP Exception Error Code: {0},e.SubCode.Code.Name);Console.WriteLine(SOAP Exception Message is: {0},e.Message);}Catch e As SoapExceptionConsole.WriteLine(SOAP Exception Error Code: {0}, e.SubCode.Code.Name)Console.WriteLine(SOAP Exception Message is: {0}, e.Message)End Try如果不存在特定类型的 Catch 块则由可能存在的常规 Catch 块来捕捉异常。例如您可以通过添加以下代码来捕获一般异常catch (Exception e){Console.WriteLine(Exception Message: {0}, e.Message);}Catch e As ExceptionConsole.WriteLine(Exception Message: {0}, e.Message)End Try将针对特定类型异常的 Catch 块放在一般异常之前。公共语言运行库将捕捉 Catch 块未捕捉的异常。根据运行库的配置可能会显示一个调试对话框或者停止执行程序并显示一个包含异常信息的对话框。多重捕获一个 try 代码块后面跟随多个 catch 代码块的情况就叫多重捕获。多重捕获块的语法如下所示try{// 程序代码}catch(异常类型1 异常的变量名1){// 程序代码}catch(异常类型2 异常的变量名2){// 程序代码}catch(异常类型2 异常的变量名2){// 程序代码}上面的代码段包含了 3 个 catch块。可以在 try 语句后面添加任意数量的 catch 块。如果保护代码中发生异常异常被抛给第一个 catch 块。如果抛出异常的数据类型与 ExceptionType1 匹配它在这里就会被捕获。如果不匹配它会被传递给第二个 catch 块。如此直到异常被捕获或者通过所有的 catch 块。finally关键字finally 关键字用来创建在 try 代码块后面执行的代码块。当发生异常后catch捕获后自动结束程序之后的finaly语句块就不会被执行了。在 finally 代码块中可以运行清理类型等收尾善后性质的语句。try{// 程序代码}catch(异常类型1 异常的变量名1){// 程序代码}catch(异常类型2 异常的变量名2){// 程序代码}finally{// 程序代码}自定义异常很多时候项目会出现特有问题而这些问题并未被java所描述并封装成对象所以对于这些特有的问题可以按照java的对问题封装的思想将特有的问题进行自定义异常封装。在Java中要想创建自定义异常需要继承Throwable或者他的子类Exception。自定义异常的使用例子:自定义test1()方法抛出 “我喝酒了”的异常信息test2()方法调用test1()方法并将异常包装成RuntimeException类型的异常继续抛出在main方法中调用test2()方法并尝试捕获异常public voidtest2() {try{test1();}catch(CustomException e){RuntimeException exception newRuntimeException(e);//exception.initCause(cause)throwexception;}}public voidtest1() throws CustomException{throw new CustomException(我喝酒了);}//main方法public static voidmain(String[] args) {CustomExceptionInitalobject newCustomExceptionInital();//try{object.test2();//}catch(Exception e){//e.printStackTrace();//}}