异常的概述和分类

一、概念

异常就是Java程序在运行过程中出现的错误。
前面接触过的空指针,数组越界,类型转换错误异常等
异常的分类(API查看Throwable)
Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。

二、处理异常方式一 (try…catch)

自己异常处理的两种方式
(1)try…catch…finally(又有三种)
try catch
try catch finally
try finally
(2)throws

try…catch处理异常的基本格式
try…catch…finally

案例:自己捕获除数不能为0(ArithmeticException)的异常
在这里插入图片描述
处理异常方式二 (try…catch多个异常)
在这里插入图片描述
多个异常处理注意:

1.多个异常时,不能把Exception异常放在最前面,相当于Exception是所有异常的父类,先由子类处理,子不能处理,再由父类处理
2.多个异常也还可以用 或| 的方式来写

### 异常检测分类方法概述 异常检测旨在识别数据集中不符合预期模式的数据点。根据是否有标签数据可用以及具体应用场景的不同,主要存在三种类型的异常检测方法: #### 1. 监督式异常检测 当有足够的标记样本可用于训练模型时采用此方式。这种方法依赖于已知的正常异常实例构建预测模型,从而能够区分新观察到的数据是否属于异常情况[^1]。 #### 2. 无监督式异常检测 对于缺乏标注信息的情况,则适用无监督学习策略。这类技术不需要预先知道哪些是正常的或是异常的例子;而是依靠发现偏离大多数观测值特征的数据点作为潜在异常。例如,基于密度的空间聚类应用噪声处理(DBSCAN),它能有效地区分孤立点即可能是异常的对象[^2]。 #### 3. 半监督式异常检测 介于上述两者之间,在仅有少量带标签的情况下工作良好。该种方案通常会先在一个大规模未加注释的数据集上预训练一个基础模型,再利用有限数量的手动标注样本来调整优化最终用于实际环境中的探测器性能。 值得注意的是,在某些特定领域如网络安全监控中,真正的威胁未必总是表现为稀少事件。一些攻击形式可能会形成新的但持续存在的流量模式,这使得传统的仅关注频率低下的异常定义变得不够充分。因此,针对这种情况设计专门的技术手段就显得尤为重要,比如通过监测突然增加的小规模群体活动来进行更精准的风险评估[^3]。 为了提高检测精度还可以考虑提供估计的目标数目给定参数化过程,但这取决于具体的实现细节技术选型[^4]。 ```python from sklearn.cluster import DBSCAN import numpy as np def detect_anomalies(data, eps=0.5, min_samples=5): """使用DBSCAN进行异常检测""" dbscan = DBSCAN(eps=eps, min_samples=min_samples) labels = dbscan.fit_predict(data) # 将-1标记视为异常 anomalies = data[np.where(labels == -1)] return anomalies ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值