Java编程之异常

简介: 处理异常不是 异常消失了 处理异常指的是 处理掉异常之后 后续的代码不会因为此异常而终止执行 两种手段 try{}catch(){}[ finally{} ] 1.try不能单独的出现 2.后面必须添加catch或finally 3.catch有一组括号 (NullPointerException) 目的是为了捕获某一种异常 4.catch可以有很多个存在 捕获的异常之间没有任何的继承关系 捕获的异常需要从小到大进行捕获 5.finally不是必须存在的 若存在fin

## 添加处理异常的手段

   处理异常不是   异常消失了

   处理异常指的是   处理掉异常之后

   后续的代码不会因为此异常而终止执行

   两种手段

   try{}catch(){}[ finally{} ]

   1.try不能单独的出现

   2.后面必须添加catch或finally

   3.catch有一组括号 (NullPointerException) 目的是为了捕获某一种异常

   4.catch可以有很多个存在

       捕获的异常之间没有任何的继承关系

       捕获的异常需要从小到大进行捕获

   5.finally不是必须存在的

       若存在finally结构  则必须执行

       引申一个小问题:   final   finally  finalize区别

       final  特征修饰符  修饰变量 属性 方法 类

       修饰变量 基本类型 值不能改变 引用类型  

       修饰属性 特点与修饰变量类似 (要求必须给属性赋初始值 否则编译报错)

       修饰方法 不能被子类重写

       修饰类    不能被其他的子类继承

       finally 处理异常手段的一部分

try{}catch(){}后面的一个部分

       这个部分可有可无  如果有只能含有一份 且必须执行

       finalize 是Object类中的一个protected方法

       对象没有任何引用指向的时候 -- 会被GC回收

       当对象回收的时候 默认调用finalize方法

       若想要看到对象回收的效果  可以重写 public void finalize(){}

   6.处理异常放在方法内部 可能还会有小问题

       如果在方法内部含有返回值

       不管返回值return关键字在哪里   finally一定会执行完毕

       返回值的具体结果   看情况

## throws抛出

   1.异常只能在方法上抛出  属性是不能处理异常的

   2.方法  构造

   3.方法可以抛出不止一个异常  通过,隔开

   4.抛出的异常与多个catch类似  要么没关系 要么先抛出小异常

## Throwable的分支

   Exception   Error

   运行时

   编译时

   两种处理异常的手段 try  throws

   常用的运行时异常  后续见到的编译时异常

   我们也可以自己创建异常----自定义异常

   1.自己描述一个异常的类

   2.让我们自己的类继承

       如果继承是RuntimeException---->运行时异常(不需要必须添加处理手段)

       如果继承是Exception-------------->编译时异常(必须添加处理手段)

   3.创建一个当前自定义异常类的对象

       通过throw关键字  主动产生异常

   4.当我们设计描述的方法(事情)  之前没有相关的异常能描述我的问题Box

       这个时候才会利用自定义异常来描述

目录
相关文章
|
5月前
|
Java
如何在Java中进行多线程编程
Java多线程编程常用方式包括:继承Thread类、实现Runnable接口、Callable接口(可返回结果)及使用线程池。推荐线程池以提升性能,避免频繁创建线程。结合同步与通信机制,可有效管理并发任务。
238 6
|
5月前
|
IDE Java 编译器
java编程最基础学习
Java入门需掌握:环境搭建、基础语法、面向对象、数组集合与异常处理。通过实践编写简单程序,逐步深入学习,打牢编程基础。
311 1
|
8月前
|
Java API 微服务
为什么虚拟线程将改变Java并发编程?
为什么虚拟线程将改变Java并发编程?
390 83
|
6月前
|
SQL Java 数据库
2025 年 Java 从零基础小白到编程高手的详细学习路线攻略
2025年Java学习路线涵盖基础语法、面向对象、数据库、JavaWeb、Spring全家桶、分布式、云原生与高并发技术,结合实战项目与源码分析,助力零基础学员系统掌握Java开发技能,从入门到精通,全面提升竞争力,顺利进阶编程高手。
1071 3
|
5月前
|
安全 前端开发 Java
从反射到方法句柄:深入探索Java动态编程的终极解决方案
从反射到方法句柄,Java 动态编程不断演进。方法句柄以强类型、低开销、易优化的特性,解决反射性能差、类型弱、安全性低等问题,结合 `invokedynamic` 成为支撑 Lambda 与动态语言的终极方案。
226 0
|
7月前
|
安全 Java 数据库连接
2025 年最新 Java 学习路线图含实操指南助你高效入门 Java 编程掌握核心技能
2025年最新Java学习路线图,涵盖基础环境搭建、核心特性(如密封类、虚拟线程)、模块化开发、响应式编程、主流框架(Spring Boot 3、Spring Security 6)、数据库操作(JPA + Hibernate 6)及微服务实战,助你掌握企业级开发技能。
914 3
|
6月前
|
Java 开发者
Java并发编程:CountDownLatch实战解析
Java并发编程:CountDownLatch实战解析
525 100
|
6月前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
434 16
|
6月前
|
NoSQL Java 关系型数据库
超全 Java 学习路线,帮你系统掌握编程的超详细 Java 学习路线
本文为超全Java学习路线,涵盖基础语法、面向对象编程、数据结构与算法、多线程、JVM原理、主流框架(如Spring Boot)、数据库(MySQL、Redis)及项目实战等内容,助力从零基础到企业级开发高手的进阶之路。
443 1