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

上海专业的网站建设公司排名绵阳住房和城乡建设厅官方网站

上海专业的网站建设公司排名,绵阳住房和城乡建设厅官方网站,制作灯笼的视频,东莞免费建站公司目录 ​编辑 异常处理 捕获异常 基本语法 实例 声明异常 注意: 实例 抛出异常 实例 运行期异常和编译期异常 自定义异常 定义 基本语法 注意 实例 异常处理 ●Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、thro…

目录

​编辑

异常处理

捕获异常

基本语法

实例

声明异常

注意:

实例

抛出异常

实例

运行期异常和编译期异常

自定义异常

定义

 基本语法

注意

实例



异常处理

●Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throws


捕获异常

  • try        执行可能产生 异常的代码
  • catch     捕获异常
  • finally   无论是否发生异常, 代码总能执行
基本语法

1.try{

       可能会发生异常的代码

       }catch(异常类型 引用名){

      异常处理代码

       }

2.try{

可能会发生异常的代码

}catch(异常类型 引用名){

异常处理代码

}finally{

必须执行代码

}

实例
  try{//可能出现异常的代码int a = 10;int b = 0;System.out.println(a/b);}catch (ArithmeticException a){//捕获对应类型的异常,在catch中执行处理程序,执行完,后续程序可以继续执行System.out.println("除数不能为0");//向用户做出提示a.printStackTrace();//打印抛出的异常对象信息System.out.println(a.getMessage());//获取异常原因}catch (ArrayIndexOutOfBoundsException ae){System.out.println("数组索引越界");System.out.println(ae.getMessage());ae.printStackTrace();}catch (Exception e){System.out.println("系统忙,请稍后再试");}System.out.println("后续程序");}
   FileInputStream inputStream= null;FileOutputStream outputStream=null;try {inputStream = new FileInputStream("E:/a.txt");outputStream = new FileOutputStream("E:/B.txt");int b = 0;while ((b = inputStream.read())!=-1){outputStream.write(b);}} catch (FileNotFoundException e) {System.out.println("文件不存在");}catch (IOException e){System.out.println("文件中断");}finally {//必须执行的代码块if (inputStream!=null){inputStream.close();}if (outputStream != null) {outputStream.close();}}

声明异常

  • throws    声明方法可能要抛出的各种异常(定义一个方法的时候可以使用throws关键字声明,表示此方法 不处理异常,而交给方法调用处进行处理)

eg.

public void test() throws 异常1,异常2,异常3{

}

注意:
  • 任何方法都可以使用throws关键字声明异常类型,包括抽象方法。
  •  调用使用了throws的方法时必须处理声明的异常,要么使用try-catch,要么 继续使用throws声明。
  •  如果抛出的是运行期异常,则不会有任何提示,需要查看所调用的方法结构
实例
/*
throws关键字在方法参数列表后,用于声明此方法中有可能抛出哪种类型都异常,此方法不处理
谁调用谁处理*/
public static void main(String[] args) {try {testA();} catch (UnsupportedEncodingException e) {System.out.println("编码异常");} catch (ArrayIndexOutOfBoundsException e){System.out.println("数组越界");}System.out.println("aaaaaaaaa");}public  static void testA() throws UnsupportedEncodingException {testB();}public static void testB() throws UnsupportedEncodingException {"abc".getBytes("utf-888");int [] a= {1,2,3,4};a[5]=5;//此方法中有数组操作}

抛出异常

  • throw      手动抛出异常用于显式抛出异常,抛出的时候是抛出的是一个异常类的实例化对象.

语法:throw new 异常类构造方法

实例
  public static void main(String[] args) {try {get(-1);}catch (ArrayIndexOutOfBoundsException a){System.out.println(a.getMessage());}}/*throw 在方法体中,当不满足某种条件时,主动的抛出一个异常对象此时方法中按出现异常对待,方法不在往下执行*/public static int get (int index){int []arr = {1,2,3,4,5};if (index<0||index>=arr.length){throw new ArrayIndexOutOfBoundsException("非法的数组索引:"+index);//当索引条件不满足需求时,主动在方法中抛出一个异常对象,方法不在往下执行}return arr[index];}

运行期异常和编译期异常


● 异常分为运行期异常编译期异常两种

编译时期异常(即checked异常、受检异常):在代码编译阶段,编译器就能明确警示当前代码可能发生XX异常,并明确督促程序员提前编写处理它的代码。如 果程序员没有编写对应的异常处理代码,则编译器就会直接判定编译失败,从而 不能生成字节码文件

运行时期异常(即runtime异常):在代码编译阶段,编译器完全不做任何检查, 无论该异常是否会发生,编译器都不给出任何提示。只有等代码运行起来并确实 发生了XX异常,它才能被发现。

java.lang.RuntimeException类及它的子类都是运行时异常。

比如: ArrayIndexOutOfBoundsException数组下标越界异常,

            ClassCastException 类型转换异常


自定义异常

定义

自定义异常就是自己定义的异常类,也就是API中的标准异常类的直接或间接的子类

作用:用自定义异常标记业务逻辑的异常,避免与标准异常混淆

 基本语法

public class 异常类名 extends Exception/RuntimeException{

public 异常类名(String msg){

super(msg);

}

注意

  • 自定义异常类中往往不写其他方法,只重载需要使用的构造方法
  •  继承Exception,在方法中使用throw抛出后,必须在方法中try-catch或 throws抛出

实例

/*
自定义异常,
在业务逻辑中,当不满是某种条件时,可以根据需要自定义对应的异常类型,与api中标准异常进行区分*/
public class ScoreException extends Exception {public ScoreException(String message){super(message);}
}public class Dom7 {public static void main(String[] args) {try {print(101);}catch (ScoreException s){System.out.println(s.getMessage());}}public  static  char print(int score) throws ScoreException {if ( score <0||score>100) {throw new ScoreException("分数不合法:"+score);}if (score >= 90) {return 'A';} else if (score>=75 && score<90) {return 'B';} else if (score>=60 && score<75) {return 'C';}return 'D';}
}
http://www.dtcms.com/a/426131.html

相关文章:

  • 陕西省安康市建设局网站赶集网招聘
  • 网站开发公司怎么接单南阳网站建设培训班
  • 潍坊网站优化公司网站虚拟主机有什么用
  • 北京婚恋网站哪家最好索尼电视网页浏览器
  • 芜湖做网站的邓健照片做网站技术方法有
  • 石家庄做网站电话做试试彩网站
  • 怎么做个人网站软件app免费下载大全
  • 嘉兴网站建设咨询广州建设信息网官网
  • 一个域名怎么用来做多个网站南京网站搭建
  • 谷歌paypal官网下载网站关键词排名优化软件
  • 专业网站设计开发wordpress备份文件后缀
  • 为何要网站优化百度seo引流怎么做
  • 清河做网站哪里好东莞网页设计培训班
  • 广州网站建设的地方推荐高新网站开发建设多少钱
  • 聊天网站模板网站建设的方案图片
  • 网站建设成本 网站空间站长工具seo
  • wordpress站点地图无法读取网站备案企业用个人来备案可以用吗
  • 网站模版安装教程网站建设提供商
  • 网站建设维护实训总结莱芜区组织部网站
  • 动易网站只能进首页东山县建设局网站
  • 网站建设朋友圈广告淮安做网站需要多少钱
  • 怎么查询网站的外链深圳公司代理
  • 建设网站所需要的技术my eclipse网站开发
  • 服装行业网站建设及推广注册企业的流程有哪些
  • 衡阳市城市建设投资有限公司网站山东省建设工程网站
  • seo网站建设步骤网页设计与网站规划
  • jsp网站开发实例工作服定制电话
  • 网站源码破解版事业单位微信公众号怎么创建
  • 婚纱礼服外贸网站如何注册品牌名称和商标
  • icp备案网站用不了wordpress 小工具插件