我对异常的理解_temp1

我现理解的异常很浅显,也就是了解了一些规则和形式,至于背后的东西不明不白啊

try

catch

throw

    这三个东西在我眼中就是异常. try里面放一些可能会引发异常的代码,当里面的代码真的引发了异常,try就会把异常送给相应的catch来处理,所以catch里面的东西是用来解决异常的.throw应该是在代码编写的过程中程序员觉得某个地方可能会发生意外,于是在该处加了一个throw, throw后面添加的应该是程序员认为的意外的类型.
   程序在运行过程中,如果try里面的某些语句真的引发了异常,也就是执行了某条throw语句,那么,整个程序就停止往下运行了,而是返回到包含这个异常的try块处,此时这个try就把该异常抛给了跟在其后的catch了(catch来处理这个异常),当然catch能处理的类型要和异常的类型匹配, ...先写到这 我该回去游泳了...减肥现在才是最重要的事情. 呵呵

 

2010-01-06今天继续,首先写一个简单的应用异常的例子

注意:一个try块后面要紧跟着若干catch块,他们是成对出现的.

在这个try块里面写了三种异常,也就是写了三个throw,也就是throw了三个不同的类型:字符串型,double型,int型;然后写了对应这三种类型的catch来处理它们.也就是说一个catch只能处理对应的throw,就像是电工只处理电的问题,木工呢就只干木匠活.这里有一个问题:如果马桶坏了,而此时没有修马桶的怎么办?这时就只能找物业来解决了. 在上面的例子中,如果把int型的catch去掉的话,当throw 2012时,就没有谁能够catch它了,这时候程序就会因为这个异常终止了.

下面我们改变一下这个例子的代码

fun()中的catch们能够接住两种类型的throw(int型,double型),但是fun()可能产生三种类型的throw(字符串型,int型,double型),如果fun() throw一个char*,fun()的catch们肯定是谁也接不住了.但是,幸好fun()的调用也是包含在一个try块中的,这个try块对应的catch们中正好有一个能接字符串的catch.于是它接住了fun()中throw的char* ...呵呵.

那么,我现在又有一个问题了:一个被throw的东西到底能够扔多远呢?

以上面的例子来看 如果fun() throw一个 int 那么他飞不了多远就被fun()中的catch(int)给接住了. 而如果fun() throw 一个char*的话,他会被main()中的catch(char *)接住.

总之,throw会被第一个能接住他的catch接住.如果没有catch能接住它的话,程序就终止了. 呵呵

 

这就是我现在对异常的理解.

但是,什么时候用,为什么用,有什么优缺点,我还不了解啊.

 

再总结一下,我脑子中的异常到底是个什么东西

因为程序在运行的过程中可能会遇到各种问题,导致不能进行下去,就如当我们需要用用户输入的两个数相除,如果用户输入的除数是0的话,很显然是不可以的,程序会因为做这个除法而崩溃,也就是说在这一点上会出现潜在的问题(用户可能输入0)应该在这时停止程序的继续运行,而转到处理这个出现的问题上.throw就是用来放在这些可能出问题的点上,一旦出现问题执行了throw的话,程序就会停止向下运行.throw这时会抛出一个东西,这个东西能够告诉程序是出了什么问题,例如,throw抛出了一个"马桶坏了"的东西,那么能够修马桶的catch就会接住它,然后进行处理.而try块的作用应该和堆栈解推有关,相关的问题要看完书才能明白,呵呵 今天要不就先到这..呵呵

还有一个事就是throw一般都会抛出一个类对象,至于为什么要这样,看书在说.

 

本课题设计了一种利用Matlab平台开发的植物叶片健康状态识别方案,重点融合了色彩与纹理双重特征以实现对叶片病害的自动化判别。该系统构建了直观的图形操作界面,便于用户提交叶片影像并快速获得分析结论。Matlab作为具备高效数值计算与数据处理能力的工具,在图像分析与模式分类领域应用广泛,本项目正是借助其功能解决农业病害监测的实际问题。 在色彩特征分析方面,叶片影像的颜色分布常与其生理状态密切相关。通常,健康的叶片呈现绿色,而出现黄化、褐变等异常色彩往往指示病害或虫害的发生。Matlab提供了一系列图像处理函数,例如可通过色彩空间转换与直方图统计来量化颜色属性。通过计算各颜色通道的统计参数(如均值、标准差及主成分等),能够提取具有判别力的色彩特征,从而为不同病害类别的区分提供依据。 纹理特征则用于描述叶片表面的微观结构与形态变化,如病斑、皱缩或裂纹等。Matlab中的灰度共生矩阵计算函数可用于提取对比度、均匀性、相关性等纹理指标。此外,局部二值模式与Gabor滤波等方法也能从多尺度刻画纹理细节,进一步增强病害识别的鲁棒性。 系统的人机交互界面基于Matlab的图形用户界面开发环境实现。用户可通过该界面上传待检图像,系统将自动执行图像预处理、特征抽取与分类判断。采用的分类模型包括支持向量机、决策树等机器学习方法,通过对已标注样本的训练,模型能够依据新图像的特征向量预测其所属的病害类别。 此类课题设计有助于深化对Matlab编程、图像处理技术与模式识别原理的理解。通过完整实现从特征提取到分类决策的流程,学生能够将理论知识与实际应用相结合,提升解决复杂工程问题的能力。总体而言,该叶片病害检测系统涵盖了图像分析、特征融合、分类算法及界面开发等多个技术环节,为学习与掌握基于Matlab的智能检测技术提供了综合性实践案例。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值