异常的概念
throwable:异常,程序非正常执行的情况
error:错误,程序非正常执行的情况,这种问题不能处理,或不应该处理
exception:例外,程序非正常执行的情况,这种问题可以通过处理

java是面向对象的所有的异常问题,都是用对象表示

异常产生的原因,为什么需要产生异常。
---》程序代码不能正常的产生结果的时候---》产生异常

一、产生异常方式
1)表达式产生 例如:a/b, 除数为0
2)方法调用产生 例如:str.charAt(idx),下标越界
3)手动产生异常 语法:throw 异常对象(exception及子类型的对象)

二、java异常处理方式
1)throws:抛出异常给上级(方法的调用者)处理
2)try catch:方法自己处理异常

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

throws注意点
1)throws跟的异常是方法【可能出现】的异常
2)如果方法throw里一个异常,那么可以throws异常类自己,或其超类型
3)如果方法都throws异常,最后main也throws异常,那么异常会交给jvm处理
jvm处理:a)打印异常的详细信息 b)停止线程(程序)

三、throws和重写的关系

重写语法:
1)方法签名:子类型==超类型
2)返回值类型:
a)基本类型和void:子类型==超类型
b)引用类型:子类型<=超类型
3)访问修饰符: 子类型>=超类型
不能为private
4)throws异常列表:
子类型<=超类型
<=:指异常类的大小,更异常类的个数无关。

exception或runtimeException关系

exception:例外,程序非正常执行的情况,这种问题可以通过处理
runtimeException:例外,程序非正常执行的情况,这种问题可以通过处理,方法
都默认对该异常进行处理,throws 了该异常。

四、自定义异常
作用?———》可以更加准确的通过类名描述异常的信息。
语法:
1)类名:异常信息+Exception
2)继承:exception或runtimeException
3)构造器:空构造和初始化异常消息的构造器

五、try catch:自己处理异常

语法1:
try{
//监听可能出现的异常代码
}catch(异常类 变量){
//捕获到对应异常执行的代码
}...

try:监听可能出现的异常代码
catch:捕获到对应异常执行的代码

执行流程
a)有异常
1)有对应catch:执行try的代码遇到异常位置,后面代码不执行,执行对应的catch,
再离开try catch结构。
2)没有对应catch:执行try的代码遇到异常位置,后面代码不执行,直接把异常抛出,交给
方法的上级。
b)无异常:执行try的所有代码,然后离开try catch结构。

语法2:
try{
//监听可能出现的异常代码
}catch(异常类 变量){
//捕获到对应异常执行的代码
}...
finally{
//一定执行的代码
}

try:监听可能出现的异常代码
catch:捕获到对应异常执行的代码
finally:一定执行的代码(释放资源--流:关闭管道,数据库连接关闭,网络连接关闭),无论是否有异常都会执行,方法提前return,throw也会执行。

执行流程
a)有异常
1)有对应catch:执行try的代码遇到异常位置,后面代码不执行,执行对应的catch,
再执行finally,再离开try catch结构。
2)没有对应catch:执行try的代码遇到异常位置,后面代码不执行,再执行finally,直接把异常抛出,交给
方法的上级。
b)无异常:执行try的所有代码,再执行finally,然后离开try catch结构。

转载于:https://www.cnblogs.com/Tab1994/p/5436440.html

java初学者笔记总结day9相关推荐

  1. java初学者笔记总结day6

    static关键字 作用:没有static在类中定义的[数据和功能](成员变量和成员方法), 都是属于对象的,如果[数据和功能]只是跟类有关系,那么我们可以通过 staic关键字修饰,变为(静态变量和 ...

  2. Java初学者笔记五:泛型处理

    一.泛型类: 泛型是指适用于某一种数据类型而不是一个数据机构中能存不同类型 1 import java.io.*; 2 import java.nio.file.Files; 3 import jav ...

  3. java初学者笔记总结day7

    eclipse->debugger模式 作用?-->调试程序的错误(运行错误) 可以动态执行程序代码,并且可以在执行的时候查看到当前执行环境的变量(常量)的值. debugger调试的步骤 ...

  4. B站有哪些值得Java初学者看的视频,Java学习路线

    我的读者中有很大一部分学生读者,以前也分享过一些Java学习路线,但是我收到的反馈并不好,因为学习路线包含的内容太多了,对于初学者来说难度太大,时间也不够用,根本学不完.今天我将结合B站优秀视频整理一 ...

  5. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  6. Java开发笔记(一百一十三)HttpClient实现下载与上传

    前面介绍了通过HttpClient实现HTTP接口的GET方式调用和POST方式调用,那么文件下载与文件上传又该如何操作呢?其实在HttpClient看来,文件下载属于特殊的GET调用,只不过应答报文 ...

  7. Java 学习笔记:第一章 Java入门

    Java 学习笔记:第一章 Java入门 1.1 计算机语言发展史以及未来方向 1.2 常见编程语言介绍 C语言 C++ 语言 Java语言 PHP 语言 Object-C和Swift 语言 Java ...

  8. 自学java难吗?给java初学者的一些建议

    自学java到底难不难? 其实学习java说难不难,说简单也不简单.如今互联网十分发达,各种学习资料,视频,文档都可以在网上找到.可以说如今是一个全民自学的时代,你要你有决心和时间,足不出户便能学习很 ...

  9. 好程序员Java培训分享Java初学者必读

    好程序员Java培训分享Java初学者必读,近年来各种各样的编程语言不断崛起,但唯有Java是牢牢占据着老大的位置,目前几乎90%以上的大中型互联网应用系统在服务器端开发首选Java.因此,也是吸引了 ...

最新文章

  1. 您需要了解有关Angular中的ng-template,ng-content,ng-container和* ngTemplateOutlet的所有信息...
  2. 转载:土豆洋芋山药蛋的博客: SBSE—基于搜索的软件工程简介
  3. mysql8.0client_navicat 连接mysql8.0 报错client does not support authentication
  4. javascript 忍者秘籍读书笔记
  5. Gradle技巧–显示buildscript依赖性
  6. 字符串系列函数(不断跟新)
  7. 201612-2 工资计算
  8. 最新回归算法理解、实现及应用(1)线性回归
  9. AngularJs HelloWorld
  10. 电源大师课笔记 1.3
  11. 计算机技术排除故障网站有哪些,电脑技术交流之常见故障排除【详解】
  12. “我被苹果人脸识别系统「坑」进了监狱”
  13. Windows 11 Manager(win11优化大师)官方中文版V1.0.0 | windows11优化软件下载
  14. excel power Query
  15. 在线考试防止切屏功能
  16. 2008服务器系统备份工具,服务器2008系统备份
  17. 西安工程大学c语言试卷,C语言程序设计(西安工程大学)2020知到章节测试题答案...
  18. 如何获取股票交易数据接口?
  19. 通过ip能查服务器型号,通过ip地址查服务器归属
  20. 音视频系列1:流媒体

热门文章

  1. 不经历风雨,怎么能见彩虹!马克斯与我的不解之缘!
  2. 都说区块链颠覆未来,区块链究竟能改变什么?
  3. 智能合约语言Solidity 类型介绍
  4. win8计算机管理没有用户组,Win8右键计算机管理提示“该文件没有与之关联的程序”怎么办?...
  5. 1151 LCA in a Binary Tree (含求LCA的通法)
  6. 1059 Prime Factors
  7. 学习Mybatis与mysql数据库的示例笔记
  8. C# 引用类型和值类型
  9. SSO单点登录基于CAS架构封装 Memcached 实例
  10. one pragmatical sqlhelper