高级异常

一、什么是异常

  解析:异常就是在程序的运行过程中所发生的不正常事件

二、Java异常处理是通过5个关键字来解决的:try、catch、finally、(前三个是捕获异常)throw(手动抛出异常)、throws(声明异常)。

三、1)try-catch块

public class Text3 {/*** @param args*1、 Java的异常处理是通过五个关键字来实现的:* try、catch、finally、throw、throws*2、 e.printStackTrace();//输出异常的堆栈信息* 3、String getMessage():返回异常信息描述字符串*     字符串描述异常产生的原因是:printStackTrace()输出信息的一部分* 4、使用Try-catch如果有输入错误那么到哪一行以后忽略其它行直接进入*     catch块中执行*/public static void main(String[] args) {Scanner input=new Scanner(System.in);System.out.println("请输入被除数:");try {int num=input.nextInt();System.out.println(num);System.out.println("请输入除数");int num1=input.nextInt();System.out.println(String.format("%d/%d=%d",num,num1,num/num1));System.out.println("感谢使用本程序");} catch (Exception e) {System.err.print("出现错误被除数和除数;必须都是整数,"+"除数不能为0");e.printStackTrace();//输出异常的堆栈信息}

 2)多重catch

package cn.happy.lianxi;import java.util.InputMismatchException;
import java.util.Scanner;public class Text5 {/*** @param args* catch(Exception e)--------->排列顺序必须是从子类到父类*/
private void mian() {Scanner input=new Scanner(System.in);System.out.println("请输入被除数:");try {int num=input.nextInt();System.out.println(num);System.out.println("请输入除数");int num1=input.nextInt();System.out.println(String.format("%d/%d=%d",num,num1,num/num1));System.out.println("感谢使用本程序");}catch(InputMismatchException e){System.out.println("输入的被除数和除数必须都是整数");}catch(ArithmeticException e){System.out.println("除数不能为零");}catch(Exception e){System.out.println("其它未知异常");}finally{System.out.println("感谢使用本程序");}}
}

3)try-catch-finally

package cn.happy.lianxi;public class TText1 {/** System.exit(1);            jvm异常退出* System.exit(0);            正常退出* try---catch---finally  捕获异常* throw     抛出异常* throws    声明异常* * * * *///声明异常或者用try---catch
public static void main(String[] args) throws Exception {try {int result=5/0;System.out.println(result);} catch (Exception e) {System.out.println("错误");}

4)throw----throws

package cn.happy.lianxi;public class ClaTT {//声明异常public void Cal(int num,int num1) throws Exception{if(num1==0)//抛出异常throw new Exception ("除数不能为0");else{int result=num/num1;System.out.println(result);}}}

 

 

注意点:

  1、一般情况下都会走finally块,只有在如下情况下不会走到

try{
//代码
}catch(Exception e){System.exit(0);        //正常退出
}finally{System.out.print("不会finally代码块");
}

  四、异常的分类

  

转载于:https://www.cnblogs.com/yejiaojiao/p/5431796.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【纠错】——错误:PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。“+解决方案

目录 问题出现场景 原因 解决方案 问题出现场景 先打开pdf文件,获取pdf文件内容后,利用os.remove()来删除文件,这时候出现错误 os.remove(source_path)PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。…

Eclipse中自动添加注释

方法一:Eclipse中设置在创建新类时自动生成注释 windows-->preference   Java-->Code Style-->Code Templates     code-->new Java files 编辑它 ${filecomment} ${package_declaration} /** * Author fufu* Time ${date} ${time} * Version 1.…

使用rancher创建负载均衡服务

2019独角兽企业重金招聘Python工程师标准>>> 2台主机,一个server包含2个容器进程(可以是多个),一个负载均衡容器(貌似是依赖haproxy的) 1,创建一个镜像,编辑Dockerfile 创…

Six Basic Functional Areas of Spring

转载于:https://www.cnblogs.com/Brake/p/5440738.html

【pyqt5学习】——登录界面跳转到主界面,登录界面关闭的情况下从主界面跳转回登录界面

目录 一、登录界面长下面这样,由qt designer设计 login.py 二、登录界面 逻辑代码loginLogic.py 三、主界面comsumeType.py 四、主界面逻辑代码comsumeTypeLogic.py 五、登录界面跳转至主界面 六、主界面回到登录界面 一、登录界面长下面这样,由qt d…

关于问题vxworks与linux区别

vxWorks Linux 内核 结构 微内核, 内核只提供 了基本的服 务,如:任 务管理,内 存管理,中 断处理等 宏内核, 除了基本的 服务,内核…

【python学习】——获取桌面路径,获取系统盘符,获取电脑用户名,获取软件自启动存放目录

目录 1、获取桌面路径 法一:利用winshell库 法二:利用winreg库 2、获取系统盘符 3、获取电脑用户名 4、获取软件自启动存放目录 1、获取桌面路径 法一:利用winshell库 import winshell print(winshell.desktop()) 法二:利…

团队项目:个人工作总结10

团队项目:个人工作总结10 一.昨天干了什么改进现有的成果二.今天准备干什么做最后的调试分析改进整合。三.遇到的困难任务还是没有完成转载于:https://www.cnblogs.com/kongyuhang/p/5442714.html

WPF ClickOnce应用程序IIS部署发布攻略

WPF程序非常适合公司内网使用,唯一缺点就是客户端要安装.net框架4.0。优势也很明显,在客户端运行的是一个WinForm程序,自动下载,可以充分利用客户机的性能,而且是以当前的Windows用户权限运行,避免了权限带…

文件传输协议

文件传输协议(英文:File Transfer Protocol,简称为FTP)是用于在网络上进行文件传输的一套标准协议。它属于网络传输协议的应用层。 FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理&#xff…

36.LEN() 函数

LEN() 函数 LEN 函数返回文本字段中值的长度。 SQL LEN() 语法 SELECT LEN(column_name) FROM table_name SQL LEN() 实例 我们拥有下面这个 "Persons" 表: IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York…

【python学习】——为exe软件创建快捷方式;实现软件自启动

目录 1、为exe创建快捷方式 2、实现软件自启动 3、完整代码 4、结果展示 1、为exe创建快捷方式 利用winshell库的CreateShortCut函数进行创建 【python学习】——获取桌面路径,获取系统盘符,获取电脑用户名,获取软件自启动存放目录_有情怀…

dedecms如何调用当前栏目的子栏目及子栏目文章

前面ytkah谈到了 dedecms调用当前栏目的子栏目怎么操作,有的朋友会问如果再增加一个调用子栏目文章的需求,即调用当前栏目的子栏目及子栏目文章,这个有办法实现吗?这时就要涉及到另外两个标签的调用了,dede:channelart…

控制面板项 .cpl 文件说明

控制面板项 .cpl 文件说明appwiz.cpl 程序和功能、卸载或更改程序bthprops.cpl 蓝牙控制面板desk.cpl 屏幕分辨率Firewall.cpl WINDOWS防火墙hdwwiz.cpl 设备管理器igfxcpl.cpl 英特尔图形和…

vxWorks下常用的几种延时方法

在应用编程的时候,通常会碰到需要一个任务在特定的延时之后执行一个指定的动作,如等待外设以确保数据可靠,控制扬声器发声时间以及串口通信超时重发等。这就需要利用定时器机制来计量特定长度的时间段。 vxWorks作为实时嵌入式系统&#xff0…

【pyqt5学习】——窗口最小化至托盘、取消任务栏图标

目录 1、最小化至托盘 1)重写系统托盘类,设置托盘图标等属性 2)将具体的窗口放入托盘 2、取消任务栏界面图标 3、问题汇总 1)退出后托盘图标还是存在,没有消失 2)最小化后左下角会出现 窗口 3&#…

标准库类型String,Vector

string对象中每个字符的处理&#xff1a; 要用到 for(声明:表达式) 语句 比如简单的打印string str中每一个字符 --- string str("hello world!!!"); for(auto c: str)cout<<c<<endl; (ps:这里auto 的意思是让编译器自己来决定c变量的类型) --- 再举一…

React 是怎样炼成的

本文主要讲述 React 的诞生过程和优化思路。 内容整理自 2014 年的 OSCON - React Architecture by vjeux&#xff0c;虽然从今天&#xff08;2018&#xff09;来看可能会有点历史感&#xff0c;但仍然值得学习了解。以史为鉴&#xff0c;从中也可以管窥 Facebook 优秀的工程管…

HOJ 1640 Mobile Phone

题意&#xff1a;有一个n*n的矩阵&#xff0c;op1时&#xff0c;在(x,y)增加值z&#xff0c;op2时&#xff0c;求以(x1,y1)和(x2,y2)构成的矩阵的和。 思路&#xff1a;二维线段树。 代码&#xff1a; 1 #include<stdio.h>2 #include<string.h>3 const int N1111;4…

vxWorks多任务编程初探-上

进程&#xff08;Process&#xff09;是具有一定独立功能的程序关于某个数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的一个独立单位。程序只是一组指令的有序集合&#xff0c;它本身没有任何运行的含义&#xff0c;只是一个静态实体。而进程则不同&#xff…