Java零基础入门之常用工具
Java异常
什么是异常?
在程序运行过程中,意外发生的情况,背离我们程序本身的意图的表现,都可以理解为异常。
throwable是所有异常的根类,异常分为两种异常exception和error
Error是程序中无法处理的错误,表示应用程序中比较严重的问题,分别有虚拟机错误(VirtualMachineError)内存溢出(OutOfMemoryError)线程死锁(ThreadDeath);
Exception是程序本身可以处理的异常。异常处理通常指针对这种异常的处理。
Exception异常由分为两种:非检查异常和检查异常
非检查异常:RuntimeException 包括空指针异常(NullPointerException)、数组下标越界异常(ArrayIndexOfBoundsException)、算数异常(ArithmeticException)、类型转换异常(ClassCastException)等,这类异常产生频率较高,产生时可以由程序处理或者抛给(throw)jvm处理,例如上面的例子就是抛给了jvm处理,jvm把程序中断执行,并把错误信息输出到终端上。
检查异常:IO异常(IOException)、SQL异常(SQLException)等,此类异常必须由程序员手动处理,否则不通过编译。
如何处理异常?
抛出异常---捕获异常--处理异常
捕获异常:对于运行时异常、错误或可查异常,Java技术所要求的异常处理方式有所不同
通过五个关键字来实现:try、catch、finally、throw、throws

——try-catch-finally
try块捕获异常,catch用于处理try捕获到的异常,finally无关是否捕获到异常处理,异常代码总能执行
语法要求:组合使用,try块后可接零个或多个catch块,如果没有catch块,则必须跟一个finally块



return关键字在异常处理中的使用 作用:终止当前运行
——throw
——throws
可以通过throws声明将要抛出何种类型的异常,通过throw将产生的异常抛出;
如果一个方法可能会出现异常,但没有能力处理这种异常,可以在方法声明处用throws子句来声明抛出异常;
throws语句用在方法定义时声明该方法要抛出的异常类型;当方法抛出异常列表中的异常时,方法将不对这些类型及其子类类型的异常作处理,而调用该方法的方法,由他去处理

——自定义异常
使用Java内置的异常类可以描述在编程出现的大部分异常情况;
也可以通过自定义异常描述特定业务产生的异常类型;
所谓自定义异常,就是定义一个类,去继承Throwable类或者它的子类
——异常链
有时候我们会捕获一个异常后再抛出另一个异常;
顾名思义就是:将异常发生的原因一个串一个串起来,即把底层的异常信息传给上层,这样逐层抛出。
关于方法重写时throws的注意事项
当子类重写父类抛出异常的方法时,声明的异常必须是父类方法所声明的异常的同类或子类;
Java零基础入门之常用工具的更多相关文章
- 【JAVA零基础入门系列】Day6 Java字符串
字符串,是我们最常用的类型,每个用双引号来表示的串都是一个字符串.Java中的字符串是一个预定义的类,跟C++ 一样叫String,而不是Char数组.至于什么叫做类,暂时不做过多介绍,在之后的篇章中 ...
- 【JAVA零基础入门系列】Day8 Java的控制流程
什么是控制流程?简单来说就是控制程序运行逻辑的,因为程序一般而言不会直接一步运行到底,而是需要加上一些判断,一些循环等等.举个栗子,就好比你准备出门买个苹果,把这个过程当成程序的话,可能需要先判断一下 ...
- 【JAVA零基础入门系列】Day12 Java类的简单应用
俗话说的好,实践出真知,所以除了理论知识掌握扎实以外,更重要的是要多加操练,这样才能掌握核心科技. 今天我们就用刚学会的类来实践一下,目标便是完成上一篇中的剁手任务. 我们的商品类已经准备好了,代码重 ...
- 【JAVA零基础入门系列】Day7 Java输入与输出
[JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...
- 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA
开发环境搭建好之后,还需要一个集成开发环境也就是IDE来进行编程.这里推荐的IDE是IDEA,那个老掉牙的Eclipse还是先放一边吧,(手动滑稽). IDEA的下载地址:http://www.jet ...
- 【JAVA零基础入门系列】Day4 变量与常量
这一篇主要讲解Java中的变量,什么是变量,变量的作用以及如何声明,使用变量. 那么什么是变量?对于初学者而言,可以将变量理解为盒子,这些盒子可以用来存放数据,不同类型的数据需要放在对应类型的盒子里. ...
- 【JAVA零基础入门系列】Day5 Java中的运算符
运算符,顾名思义就是用于运算的符号,比如最简单的+-*/,这些运算符可以用来进行数学运算,举个最简单的栗子: 已知长方形的长为3cm,高为4cm,求长方形的面积. 好,我们先新建一个项目,命名为Rec ...
- 【JAVA零基础入门系列】Day9 Java中的那个大数值
什么是大数值?用脚趾头想也知道,当然是"大"的数值(233).Java中有两个用于表示大数值的类,BigInteger和BigDecimal,那到底能表示多大的数值呢?理论上,可以 ...
- 【JAVA零基础入门系列】Day10 Java中的数组
什么是数组?顾名思义,就是数据的组合,把一些相同类型的数放到一组里去. 那为什么要用数组呢?比如需要统计全班同学的成绩的时候,如果给班上50个同学的成绩信息都命名一个变量进行存储,显然不方便,而且在做 ...
随机推荐
- centos7.x 将普通用户加入sudoers中,获取sudo执行权限
centos7.x 将普通用户加入sudoers中,获取sudo执行权限 0 问题由来 你在提起兴致学习的时候,兴冲冲地往黑洞洞的文本窗口输入下一行: [pan@localhost ~]$ sud ...
- C#使用GUID作为随机数种子
使用C#默认的Random无参构造的next生成的随机数,在快速生成随机数的时候,会出现大批量的重复.使用guid作为随机数种子,效果会好很多 Guid temp = Guid.NewGuid(); ...
- Android OkHttp + Retrofit 取消请求的方法
本文链接 前言 在某一个界面,用户发起了一个网络请求,因为某种原因用户在网络请求完成前离开了当前界面,比较好的做法是取消这个网络请求.对于OkHttp来说,具体是调用Call的cancel方法. 如何 ...
- [ZJOI2006]物流运输trans
Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格 ...
- 【DP合集】tree-knapsack
Description 给出一个 N 个节点的有根树,点编号 1 ∼ N ,编号为 i 的点有权值 v i .请选出一个包含树根的,点数 不超过 K 的连通块,使得点权和最大. Input 输入的第一 ...
- Oracle VM VirtualBOX桥接网卡
1.在VirtualBOX设置中的网络菜单,连接方式选择桥接网卡 2.启动系统,设置静态IP sudo vim /etc/network/interfaces auto enp0s3 ...
- Spring Security 动态url权限控制(三)
一.前言 本篇文章将讲述Spring Security 动态分配url权限,未登录权限控制,登录过后根据登录用户角色授予访问url权限 基本环境 spring-boot 2.1.8 mybatis-p ...
- C++ 利用template给函数中的变量赋初值
#include <iostream> template<int base> void echo(int add) { int sum=add+base; std::cout& ...
- Java项目部署与远程调试两三事
[开启和进行远程调试]参考https://blog.csdn.net/WSYW126/article/details/748536801.tomcat:配置catalina.sh jpda参数,主要是 ...
- C# 结合 Golang 开发
1. 实现方式与语法形式 基本方式:将 Go 程序编译成 DLL 供 C# 调用. 1.1 Go代码 注意:代码中 export 的注释是定义的入口描述不能省略 package main import ...