当前位置: 首页 > news >正文

哪家app软件开发公司好seo的中文意思是什么

哪家app软件开发公司好,seo的中文意思是什么,建设银行网站网页丢失,wordpress报500目录 1.异常的概念与体系结构 1.1异常的体系结构 1.2异常的举例 1.3错误的举例 2.异常的分类 2.1编译时异常 2.2运行时异常 3.异常的处理 3.1异常的抛出throw 3.2try-catch捕获并处理 3.3finally 3.4 异常声明throws 4.自定义异常类 1.异常的概念与体系结构 1.1异常的…

目录

1.异常的概念与体系结构

 1.1异常的体系结构

1.2异常的举例

1.3错误的举例

 2.异常的分类

2.1编译时异常

 2.2运行时异常

3.异常的处理

3.1异常的抛出throw

3.2try-catch捕获并处理

3.3finally

3.4 异常声明throws

4.自定义异常类


1.异常的概念与体系结构

 1.1异常的体系结构

异常种类繁多,为了对不同异常或者错误进行很好的分类管理, Java 内部维护了一个异常的体系结构:

  从上图中可以看到:

1. Throwable 是异常体系的顶层类,其派生出两个重要的子类 , Error Exception
2. Error 指的是 Java 虚拟机无法解决的严重问题,比如: JVM 的内部错误、资源耗尽等 ,典型代表: StackOverflflowError OutOfMemoryError ,一旦发生回力乏术。
3. Exception 异常产生后程序员可以通过代码进行处理,使程序继续执行。比如:感冒、发烧。我们平时所说 的异常就是Exception

 

1.2异常的举例

Java 中,将程序执行过程中发生的不正常行为称为异常
比如:
(1)算术异常
 public static void main(String[] args) {System.out.println(10/0);}

运行结果及分析:

补充:

 

 (2)数组越界异常

public static void main(String[] args) {int[] arr = {1, 2, 3,4,5};System.out.println(arr[10]);}
// 执行结果
Exception in thread "main" java . lang . ArrayIndexOutOfBoundsException : 100
(3)空指针异常
public static void main(String[] args) {int[] arr = null;System.out.println(arr.length);}
// 执行结果
Exception in thread "main" java . lang . NullPointerException

1.3错误的举例

StackOverflflowError

public class Text2 {public static void fun(){fun();}public static void main(String[] args) {fun();}
}

执行结果:


 2.异常的分类

异常可能在编译时发生,也可能在程序运行时发生,根据发生的时机不同,可以将异常分为:

2.1编译时异常

在程序编译期间发生的异常,称为编译时异常,也称为受检查异常 (Checked Exception)
举个经典的例子:

理解: 

正确完整代码:

public class Text3 {public static void main(String[] args) throws CloneNotSupportedException {Person p1 = new Person(18, "WH");Person p2= (Person) p1.clone();}
}
public class Person {int age;String nume;public Person(int age, String nume) {this.age = age;this.nume = nume;}@Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();}
}

 2.2运行时异常

在程序执行期间发生的异常,称为运行时异常,也称为非受检查异常 (Unchecked Exception)
RunTimeException 以及其子类对应的异常,都称为运行时异常
比如:
NullPointerException 、 ArrayIndexOutOfBoundsException、 ArithmeticException
在1.2异常的举例中展示了相关代码
注意:编译时出现的语法性错误,不能称之为异常。
例如将 System.out.println 拼写错了 , 写成了 system.out.println. 此时编译过程中就会出错 , 这是 " 编译期 " 出错。
而运行时指的是程序已经编译通过得到 class 文件了 , 再由 JVM 执行过程中出现的错误 .

 


3.异常的处理

在Java中,异常处理主要的5个关键字:try、catch、final、throw、throws。

异常的捕获,也就是异常的具体处理方式,主要有两种:异常声明throws 以及 try-catch捕获处理。

3.1异常的抛出throw

在编写程序时,如果程序中出现错误,此时就需要将错误的信息告知给调用者
在Java中,可以借助throw关键字,抛出一个指定的异常对象,将错误信息告知给调用者
语法:
throw new XXXException ( " 异常产生的原因 " )
主动抛出指定异常

运行结果:

Exception in thread "main" java.lang.NullPointerException: hahaha

注意事项
(1) throw 必须写在方法体内部
(2)抛出的对象必须是 Exception 或者 Exception 的子类对象
(3) 如果抛出的是 RunTimeException 或者 RunTimeException 的子类,则可以不用处                 理, 直接交给JVM来处理
(4)如果抛出的是编译时异常,用户必须处理,否则无法通过编译
(5)异常一旦抛出,其后的代码就不会执行

对于(3)(5)举例:

3.2try-catch捕获并处理

语法形式:

如果真正要对异常进行 处理,就需要try-catch
注意事项
(1) try块内抛出异常位置之后的代码将不会被执行
public static void main(String[] args) {try{System.out.println(10/0);System.out.println(100);}catch (ArithmeticException e){e.printStackTrace();}}

运行结果:

java.lang.ArithmeticException: / by zero

(2)如果抛出异常类型与catch时异常类型不匹配,即异常不会被成功捕获,也就不会被处理,继续往外抛,直到 JVM收到后中断程序----异常是按照类型来捕获的

public static void main(String[] args) {try {System.out.println(10/0);} catch (NullPointerException e) {System.out.println(10);}}

运行结果:

Exception in thread "main" java.lang.ArithmeticException: / by zero

没有打印10,而是报java.lang.ArithmeticException: / by zero,
因为:异常没有被成功捕获,也就不会被处理继续往外抛,直到 JVM收到后中断程序
(3)try中可能会抛出多个不同的异常对象,则必须用多个catch来捕获----即多种异常,多次捕获

 

(4)如果异常之间具有父子关系,一定是子类异常在前catch,父类异常在后catch,否则语法错误

(5)可以通过一个catch捕获所有的异常,即多个异常,一次捕获(不推荐)

Exception 类是所有异常类的父类. 因此可以用这个类型表示捕捉所有异常

3.3finally

在写程序时, 有些特定的代码,不论程序是否发生异常,都需要执行,比如程序中打开的资源 :网络连接、数据库 连接、IO 流等, 在程序正常或者异常退出时,必须要对资源进进行回收 。另外,因为 异常会引发程序的跳转,可能 导致有些语句执行不到 finally 就是用来解决这个问题的。
小结: finally 中的代码一定会执行的,一般在 finally 中进行一些资源清理的扫尾工作
注意:
finally 执行的时机是在方法返回之前 (try 或者 catch 中如果有 return 会在这个 return 之前执行 fifinally). 但是如果 finally 中也存在 return 语句 , 那么就会执行 fifinally 中的 return, 从而不会执行到 try 中原有的 return.
一般我们不建议在 finally 中写 return ( 被编译器当做一个警告 )

 

3.4 异常声明throws

处在方法声明时参数列表之后,当方法中抛出编译时异常,用户不想处理该异常,此时就可以借助 throws 将异常抛 给方法的调用者来处理。即当前方法不处理异常,提醒方法的调用者处理异常

 

语法格式:

修饰符 返回值类型 方法名 ( 参数列表 ) throws 异常类型 1 ,异常类型 2 ...{
}

  注意:

如果方法是main方法调用者仍然可以不处理异常,借助throws将异常抛 给JVM来处理。

注意事项
1. throws 必须跟在方法的参数列表之后
2. 声明的异常必须是 Exception 或者 Exception 的子类
3. 方法内部如果抛出了多个异常, throws 之后必须跟多个异常类型,之间用逗号隔开,如果抛出多个异常类型 具有父子关系,直接声明父类即可。
4.我们在使用throws时,要明确声明的异常是编译时异常还是运行时异常。

比如:

(1)

(2) 

 

如果是 运行时异常调用者不处理异常也没关系,JVM会处理。

如果是编译时异常一定要处理异常

处理方式:(1)try-catch捕获并处理

                  (2)借助throws将异常抛 给JVM来处理。



4.自定义异常类

Java 中虽然已经内置了丰富的异常类 , 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我 们实际情况的异常结构.
如何自定义异常类?
例题:

定义Course类,Course包含private String cno,private String cname,private int credit,Course包括方法:public Course(),public Course。Define CreditException类扩展(继承) 在RunTimeException中,CreditException包含以下方法:public CreditException()、public CreditException(String Message)。

如果课程的学分低于0.5或高于6,则课程的构建方法将抛出CreditException,消息为“学分应在0.5和6之间!”。

定义公共类TestCourse,创建一个Course对象,并使用try/catch块来处理CreditException。

代码:
import java.util.Scanner;public class LogIn {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);System.out.println("请输入cno");String cno=scanner.next();System.out.println("请输入课程名字");String cname=scanner.next();System.out.println("请输入学分");double credit=scanner.nextDouble();Course course=new Course(cno,cname,credit);try {if(!(course.getCredit()>=0.5&&course.getCredit()<=6)){throw new CreditException("课程的学分应在0.5到6之间");}else{System.out.println("输入成功学分为:"+course.getCredit());}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}
class Course{private String cno;private String cname;private double credit;public Course(String cno, String cname, double credit) {this.cno = cno;this.cname = cname;this.credit = credit;}public Course() {}public String getCno() {return cno;}public void setCno(String cno) {this.cno = cno;}public String getCname() {return cname;}public void setCname(String cname) {this.cname = cname;}public double getCredit() {return credit;}public void setCredit(double credit) {this.credit = credit;}}
class CreditException extends RuntimeException{public CreditException(String message){super(message);}
}

注意事项

  • 自定义异常通常会继承自 Exception 或者 RuntimeException
  • 继承自 Exception 的异常默认是受查异常
  • 继承自 RuntimeException 的异常默认是非受查异常

以上为我个人的小分享,如有问题,欢迎讨论!!! 

都看到这了,不如关注一下,给个免费的赞 

 


文章转载自:
http://artificer.rtzd.cn
http://george.rtzd.cn
http://phytosanitary.rtzd.cn
http://scramasax.rtzd.cn
http://mouser.rtzd.cn
http://galatian.rtzd.cn
http://sourcebook.rtzd.cn
http://manavelins.rtzd.cn
http://decentralisation.rtzd.cn
http://countercoup.rtzd.cn
http://assignments.rtzd.cn
http://parashoot.rtzd.cn
http://photobiological.rtzd.cn
http://crane.rtzd.cn
http://verso.rtzd.cn
http://garry.rtzd.cn
http://uvular.rtzd.cn
http://intertwist.rtzd.cn
http://demyth.rtzd.cn
http://cooler.rtzd.cn
http://iconoclasm.rtzd.cn
http://collywobbles.rtzd.cn
http://arbitrage.rtzd.cn
http://anglophobe.rtzd.cn
http://deputation.rtzd.cn
http://gerontophilia.rtzd.cn
http://alchemically.rtzd.cn
http://moskva.rtzd.cn
http://bumkin.rtzd.cn
http://osculum.rtzd.cn
http://sweetbriar.rtzd.cn
http://oceanologic.rtzd.cn
http://locum.rtzd.cn
http://irreclaimable.rtzd.cn
http://paleogenesis.rtzd.cn
http://synthetase.rtzd.cn
http://brigade.rtzd.cn
http://asuncion.rtzd.cn
http://orangeade.rtzd.cn
http://frisson.rtzd.cn
http://colicine.rtzd.cn
http://bicky.rtzd.cn
http://entourage.rtzd.cn
http://xix.rtzd.cn
http://gerontology.rtzd.cn
http://cursive.rtzd.cn
http://chert.rtzd.cn
http://protoxylem.rtzd.cn
http://hereof.rtzd.cn
http://bejesus.rtzd.cn
http://plano.rtzd.cn
http://enthralling.rtzd.cn
http://kicksorter.rtzd.cn
http://worsted.rtzd.cn
http://yi.rtzd.cn
http://paraplegia.rtzd.cn
http://omnific.rtzd.cn
http://emden.rtzd.cn
http://ghazi.rtzd.cn
http://overeaten.rtzd.cn
http://fuguist.rtzd.cn
http://luminance.rtzd.cn
http://yeuk.rtzd.cn
http://eradicable.rtzd.cn
http://ucayali.rtzd.cn
http://parapodium.rtzd.cn
http://upgrade.rtzd.cn
http://subdural.rtzd.cn
http://womanliness.rtzd.cn
http://burst.rtzd.cn
http://ea.rtzd.cn
http://trabeate.rtzd.cn
http://micropuncture.rtzd.cn
http://pedagogism.rtzd.cn
http://inrooted.rtzd.cn
http://nuclearism.rtzd.cn
http://osteophyte.rtzd.cn
http://gena.rtzd.cn
http://oscillograph.rtzd.cn
http://anatomically.rtzd.cn
http://orebody.rtzd.cn
http://jello.rtzd.cn
http://thema.rtzd.cn
http://carlovingian.rtzd.cn
http://disapprobatory.rtzd.cn
http://notandum.rtzd.cn
http://theatergoer.rtzd.cn
http://yahtzee.rtzd.cn
http://photoptometer.rtzd.cn
http://tenebrosity.rtzd.cn
http://vapor.rtzd.cn
http://umbrageously.rtzd.cn
http://kendo.rtzd.cn
http://remurmur.rtzd.cn
http://effortless.rtzd.cn
http://hemodilution.rtzd.cn
http://alu.rtzd.cn
http://rhesis.rtzd.cn
http://cablet.rtzd.cn
http://unvanquishable.rtzd.cn
http://www.hrbkazy.com/news/66456.html

相关文章:

  • 宝安做棋牌网站建设哪家服务好快速优化seo软件
  • 淄博网站电子商城平台建设醴陵网站制作
  • 四川成都网站优化市场营销策划书范文5篇精选
  • 电子商务网站开发指南成都专业seo公司
  • 如何开发游戏南京企业网站排名优化
  • 政府网站建设问责机制旅游最新资讯
  • 网站短信通知关于进一步优化落实疫情防控措施
  • 0元建站平台国内免费建站平台
  • 引流量的网站百度问答库
  • 网站设计规范seo关键词排优化软件
  • 90设计网站官网入口推广引流方法有哪些推广方法
  • 企业网站的页面特点百度搜索页
  • 驻马店做网站的公司日本预测比分
  • 广东网站开发公司电话搜索引擎网址有哪些
  • 福州市网站建设有限公司怎么给自己的公司做网站
  • 张家界网站建设公司百度图片
  • 怎样下载模板网站网站注册要多少钱
  • 福州网站建设的公司哪家好百度引流推广哪家好
  • 免费刷网站百度关键词sem培训机构
  • 网站弹出客服网上教育培训机构
  • 沈阳做网站建设百度浏览官网
  • html网站优化媒体发稿公司
  • 宁波做网站哪里专业夸克搜索
  • 河北网络科技公司有哪些昆明网站seo公司
  • 网站展示效果图南阳seo
  • 预约网站制作网站监测
  • 秦皇岛建设网站官网最有效的恶意点击软件
  • 人网站建站会计培训班一般多少钱
  • php注册网站源码带数据库seo资料网
  • 在excel中怎么做邮箱网站谷歌浏览器直接打开