id=viewad>src="/a/lw.js">从接触异常开始我就弄不明白她,不会用她,想在系统中是异常机制发挥的淋漓尽致,进行了很多尝试,利用异常控制程序流程,利用异常做数字的判断函数,利用异常消除系统中可能出现的恼人的异常提示框,为了更好了利用异常看了很多关于异常的文章,直到有一天看到了一句话——“永远不要去处理你不知道怎么处理的异常”,这才恍" />
当前位置:文档之家› 程序开发中异常的理解及处理异常

程序开发中异常的理解及处理异常

程序开发中异常的理解及处理异常
程序开发中异常的理解及处理异常

程序开发中异常的理解及处理异常

id=content>

src="/mx/baid.js">

id=viewad>

src="/a/lw.js">

从接触异常开始我就弄不明白她,不会用她,想在系统中是异常机制发挥的淋漓尽致,进行了很多尝试,利用异常控制程序流程,利用异常做数字的判断函数,利用异常消除系统中可能出现的恼人的异常提示框,为了更好了利用异常看了很多关于异常的文章,直到有一天看到了一句话——“永远不要去处理你不知道怎么处理的异常”,这才恍然大悟,感觉自己一直在用强大的异常机制干一些旁门左道的是事,更谈不上理解异常在程序中的地位和意义,异常其实一种报告机制,“她以一种不可回避的方式报告程序中所出现的问题”,她帮助程序员走向正确的道路,她忠实的向程序员提供错误报告,她希望有谁能重视并处理掉她报告的问题,哈,真不敢想象,没有了异常机制该如何编制高质量的程序!下面就个人的理解和看法瞎说几句,敬请各位批评指正,不胜感激!

异常的工作原理,在有问题的地方产生异常,马上停止当前的工作,转向异常处理代码,如果找不到异常处理代码,就会见异常向一层汇报,上一层接到异常会做同样的事,转向异常处理代码,或者再将异常向上汇报,这样逐层间错误传递出去,直到有一层处理了异常或是一直报告给程序的使用者——用户。这个层就是调用栈,当用户A运行程序B,B从函数C 开始执行,调用函数D,再调用函数E,再调用函数F,这时F出现了异常,那么这个异常的调用栈就是A(栈底)—〉B—〉C—〉D—〉E—〉F(栈顶),这个异常就会沿着这个栈从栈顶开始向栈底的方向报告,如果在函数C中有对这个异常的处理代码,那么这个异常的报告链就是F—〉E—〉D—〉C。可以看出,如果在完整的调用栈中没有处理这个异常的代码,用户A 就成了异常报告的终点,向windows界面系统,会弹出一个恼人的消息对话框哈。

那么用户A向谁报告呢,哈哈,这个已经不属于程序的范围了,感觉用会对程序而言好像上帝一样,诉说痛苦已经让上帝都听到了,就心满意足了哈哈,看来程序真虔诚哈哈。对于异常这个特性,也可以比喻成下属向上级报告问题,如果下属知情不报,问题就严重了,你要是领导知道下属是这样的八成就踢了他,相反如果你有一个报告机制健全的下属队伍,哈哈你就威风了。日本企业文蛤中有个宗旨——联络,商谈,报告,其实就是想让员工都具有向上级汇报的习惯。现在再看看程序,哈哈,你不用给她们灌输什么企业文化,不用她们讲述什么报告的重要性,她们本身就是忠实报告的,如果把程序员比作企业老总,那么程序就是训练一队有素的员工。

怎样处理异常。在这里有个原则就是“永远不要去处理你不知道怎么处理的异常”,

也就是只处理你知道如何处理的异常,对那些你不知道的异常必须广开言路,并积极地向上

级汇报。什么叫知道如何处理呢?先说一下处理异常有哪些方式,大体有,弹出提示消息框(这个消息框不同于那个恼人的异常报告消息框,她是捕获异常后,根据处理的具体环境程序员主动编写的友好的提示消息框),记录错误日志,吞掉,做善后工作等等,那么出现异常时就要站在出现异常的模块的立场上考虑一下我应该选择哪种处理方式呢?如果不能做出选择就选择不处理,即向上级报告。

举个例子,函数Fun1是创建并返回一个活动的数据连接对象的方法,他接受一个数据库连接字符串,如果调用者(上级)给他一个错误的连接字符串,这时Fun1创建不了连接对象,产生了一个创建不了连接对象的异常,那么这时他应该怎样处理这个异常呢?弹出友好的消息框?说什么友好,Fun1根本就不知道是什么原因使他接收到了错误的连接字符串,弹一个“连接字符串有误”,用户肯定都有杀你的心,这个提示和用户的业务逻辑有嘛关系!记录错误日志,这个还行,但是记录下来的文字无非就是“连接字符串有误,连接字符串是:SQL……”,好点的话,从连接字符串中看出了问题,一般情况下还得根据代码上下文去找问题原因。这个方式不是不行是不好。吞掉,哈哈开什么玩笑,你既创建不了连接,又不吱一声,想让调用者疯了呀,这个肯定不行。做善后工作,行,确实应该清理一下现场,免得浪费资源,但是还是没吱一声,所以这个方式做的不彻底。没招了,哈,其实上面的分析给我们指明了一条路,帮助我们祛除了错误的选择,这条路就是向上汇报,或是不加任何出来代码,或是记录日志,做些善后,再重新将异常抛出。

那么什么时候就知道怎样处理异常了,这就得看实际的情况和用户的要求了,这句话等于没说,就像其他的标题醒目但给出的结论却模棱两可文章一样,哈哈,这里可以给几个建议,

1,一般地,底层模块或是方法中不要处理异常,

2,编写公共模块、DLL等是,不能采用弹出对话框等依赖于平台,框架的方式处理异常,

3,编写公共模块、DLL等时,必须在使用文档中注明每个方法属性可能抛出的异常。

4,永远不要写

try

这样的语句。

{

}

catch(Exception)

{

o

nothing

}

自定义异常。明白了异常的原理和机制后,就可以自己定义异常了,这样的实践往往在编写控件、公共模块、DLL等的时候,用错误编号在网上搜索一下,能找出一大堆关于错误代码的描述。其中大多数是M(icro)S(oft)制定的,MS

从操作系统到各种各样的框架都有对各种异常的编号,对每种异常做出了详细的定义,如果你还用过像Spread等商业控件,也可以看到他里边的各种各样的异常定义,也就是说我们自己也可以定义异常,在必要的时候,这样就可以让自己写的模块也加入到训练有素的员工队伍中了。至于如何定义异常,具体的编成语言有具体的做法,比如C#中指定一异常一个从Exception继承来的类,VB中异常是个全局变量等等,参见感兴趣语言的语法指南就可以了。

对异常的重新认识,一直以来许多人都认为异常是非常可怕的,可恶的,她是错误的化身,她有恼人的弹出对话框,弄得用户跟凶煞恶神似的哈哈,其实这些都是误解,异常一直默默地忠实的报告着程序中出现的严重的不可回避的问题,她为了程序、系统的正确性、严谨性呼唤你,希望你重视这些问题,希望你用智慧解决这些问题,她是多么的可爱,又是多么的高尚,从来没有因为对她的误解而放弃自己的使命……异常很重要,我们更好学会如何去使用她。

论文出处(作者):

src="/a/hot.js">

常见仪表常见故障及处理办法

仪表常见故障检查及分析处理 一、磁翻板液位计: 1、故障现象:a、中控远传液位和现场液位对不上或者进液排液时液位无变化;b、现场液位计和中控远传均没有问题的情况下,中控和现场液位对不上; 2、故障分析:a、在确定远传液位准确的情况下,一般怀疑为液位计液相堵塞造成磁浮子卡住,b、现场液位变送器不是线性; 3、处理办法:a、关闭气相和液相一次阀,打开排液阀把内部液体和气体全部排干净,然后再慢慢打开液相一次阀和气相一次阀,如果液位还是对不上,就进行多次重复的冲洗,直到液位恢复正常为止;b、对液位计变送器进行线性校验。 二、3051压力变送器:压力变送器的常见故障及排除 1)3051压力变送器输出信号不稳 出现这种情况应考虑A.压力源本身是一个不稳定的压力B.仪表或压力传感器抗干扰能力不强C.传感器接线不牢D.传感器本身振动很厉害E.传感器故障 2)加压变送器输出不变化,再加压变送器输出突然变化,泄压变送器零位回不去,检查传感器器密封圈,一般是因为密封圈规格原因(太软或太厚),传感器拧紧时,密封圈被压缩到传感器引压口里面堵塞传感器,加压时压力介质进不去,但是压力很大时突然冲开密封圈,压力传感器受到压力而变化,而压力再次降低时,密封圈又回位堵住引压口,残存的压力释放不出,因此传感器零位又下不来。排除此原

因方法是将传感器卸下看零位是否正常,如果正常更换密封圈再试。 3)3051压力变送器接电无输出 a)接错线(仪表和传感器都要检查) b)导线本身的断路或短路 c)电源无输出或电源不匹配 d)仪表损坏或仪表不匹配 e)传感器损坏 总体来说对3051压力变送器在使用过程中出现的一些故障分析和处理主要由以下几种方法。 a)替换法:准备一块正常使用的3051压力变送器直接替换怀疑有故障的这样可以简单快捷的判定是3051压力变送器本身的故障还是管路或其他设备的故障。 b)断路法:将怀疑有故障的部分与其它部分分开来,查看故障是否消失,如果消失,则确定故障所在,否则可进行下一步查找,如:智能差压变送器不能正常Hart远程通讯,可将电源从仪表本体上断开,用现场另加电源的方法为变送器通电进行通讯,以查看是否电缆是否叠加约2kHz的电磁信号而干扰通讯。 c)短路检测:在保证安全的情况下,将相关部分回路直接短接,如:差变送器输出值偏小,可将导压管断开,从一次取压阀外直接将差压信号直接引到差压变送器双侧,观察变送器输出,以判断导压管路的堵、漏的连通性 三、雷达液位计:

回转窑在运行中出现异常现象、处理方法及安全事项通用版

操作规程编号:YTO-FS-PD123 回转窑在运行中出现异常现象、处理方法及安全事项通用版 In Order T o Standardize The Management Of Daily Behavior, The Activities And T asks Are Controlled By The Determined Terms, So As T o Achieve The Effect Of Safe Production And Reduce Hidden Dangers. 标准/ 权威/ 规范/ 实用 Authoritative And Practical Standards

回转窑在运行中出现异常现象、处理方法及安全事项通用版 使用提示:本操作规程文件可用于工作中为规范日常行为与作业运行过程的管理,通过对确定的条款对活动和任务实施控制,使活动和任务在受控状态,从而达到安全生产和减少隐患的效果。文件下载后可定制修改,请根据实际需要进行调整和使用。 (一)、安全注意事项 1.任何修理工作均必须在停窑后进行,同时应在电动机开头上挂上“禁止开动”的标志。 2.运转中,严禁用手或其他工具等探入轴承、减速器或大齿轮罩内部进行任何修理、检查、清洗等工作,不得拆除任何安全防护装置,如联轴器罩等。 3.检修所用的工具及零件不得放在回转机件上,尤其是托轮上。 4.转窑前必颚式破碎机价格须发出警报信号并严格检查,确认回转窑内无人,然后才能起动窑传动装置。 其实设备出现异常的问题就是因为,我们平常没有技术的检查保养维护,只要把设备当做人一样的看待,定期的对设备进行检查和保养,相信设备就不会再出现一些小毛病了。 (二)、运转中的异常现象及处理办法

Java语言提供两种异常处理机制

得到一个异常对象是,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。找到能够处理这种类型异常的方法后,运行时系统把当前异常交给这个方法处理;如果找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。捕获异常是通过try-catch-finally语句实现的。语法为:try{ ... }catch(ExceptionName1 e){ ... }catch(ExceptionName2 e){ ... } ... }finally{ ... } 2)声明抛弃异常:当Java 程序运行时系统得到一个异常对象时,如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛弃异常。声明抛弃异常是在一个方法声明中的throws子句中指明的。如:public int read() throws IOException{ ... } 其中throws IOException就是声明抛弃异常,throws后可以跟多个异常类型。 1. https://www.doczj.com/doc/a23582829.html,ng.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话) 2. https://www.doczj.com/doc/a23582829.html,ng.classnotfoundexception 这个异常是很多原本在jb等开发环境中开发的程序员,把jb下的程序包放在wtk下编译经常出现的问题,异常的解释是"指定的类不存在",这里主要考虑一下类的名称和路径是否正确即可,如果是在jb下做的程序包,一般都是默认加上package的,所以转到wtk下后要注意把package的路径加上。 3. https://www.doczj.com/doc/a23582829.html,ng.arithmeticexception 这个异常的 好好检查一下自己程序中涉及到数学运算的地方,公式是不是有不妥了。 4. 是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候,最好先查看一下数组的length,以免出现这个异常。 5. https://www.doczj.com/doc/a23582829.html,ng.illegalargumentexception 这个异常的解释是"方法的参数错误",很多j2me的类库中的方法在一些情况下都会引发这样的错误,比如音量调节方法中的音量参数如果写成负数就会出现这个异常,再比如g.setcolor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。 6. https://www.doczj.com/doc/a23582829.html,ng.illegalaccessexception 这个异常的解释是"没有访问权限",当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了package的情况下要注意这个异常。其他还有很多异常,我就不一一列举了,我要说明的是,一个合格的程序员,需要对程序中常见的问题有相当的了解和相应的解决办法,否则仅仅停留在写程序而不会改程序的话,会极大影响到自己的开发的。关于异常的全部说明,在api里都可以查阅。算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeArrayException 数组下标越界异常:ArrayIndexOutOfBoundsException 违背安全原则异常:SecturityException 文件已结束异常:EOFException 文件未找到异常:FileNotFoundException 字符串转换为数字异常:NumberFormatException 操作数据库异常:SQLException 输入输出异常:IOException 方法未找到异常:NoSuchMethodException https://www.doczj.com/doc/a23582829.html,ng.AbstractMethodError 抽象方法错误。当应用试图调用抽象方法时抛出。https://www.doczj.com/doc/a23582829.html,ng.AssertionError 断言错。用来指示一个断言失败的情况。https://www.doczj.com/doc/a23582829.html,ng.ClassCircularityError 类循环依赖错误。在初始化一个类时, 个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。https://www.doczj.com/doc/a23582829.html,ng.Error 错误。是所有错误的基类,用于标识严重的程序运行问题。这些问题通常描述一些不应被应用程序捕获的反常情况。https://www.doczj.com/doc/a23582829.html,ng.ExceptionInInitializerError 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异

异常处理练习题

异常处理练习题 一、选择题 中用来抛出异常的关键字是 A、try B、catch C、throw D、finally 2.关于异常,下列说法正确的是 A、异常是一种对象 B、一旦程序运行,异常将被创建 C、为了保证程序运行速度,要尽量避免异常控制 D、以上说法都不对 3.()类是所有异常类的父类。 A、Throwable B、Error C、Exception D、AWTError 语言中,下列哪一子句是异常处理的出口 A、try{…}子句 B、catch{…}子句 C、finally{…}子句 D、以上说法都不对 5.下列程序的执行,说法正确的是 public class MultiCatch { public static void main(String args[]) { try { int a=; int b=42/a; int c[]={1}; c[42]=99; } catch(ArithmeticException e) { 除0异常:”+e); } catch(ArrayIndexOutOfBoundsException e) { 数组超越边界异常:”+e); } } } A、程序将输出第15行的异常信息 B、程序第10行出错 C、程序将输出“b=42” D、程序将输出第15和19行的异常信息 6.下列程序的执行,说法正确的是 class ExMulti { static void procedure() { try {

int c[]={1}; c[42]=99; } catch(ArrayIndexOutOfBoundsException e) { 数组超越界限异常:”+e); } } public static void main(String args[]) { try { procedure(); int a=; int b=42/a; } catch(ArithmeticException e) { 除0异常:”+e); } } } A、程序只输出第12行的异常信息 B、程序只输出第26行的异常信息 C、程序将不输出异常信息 D、程序将输出第12行和第26行的异常信息 7.下面程序抛出了一个“异常”并捕捉它。请在横线处填入适当内容完成程序。class TrowsDemo { static void procedure() throws IllegalAccessException { procedure”); throw____new___IllegalAccessException(“demo”); } public static void main(String args[]) { try { procedure(); } ___catch (IllegalAccessException e)________ { 捕获:”+e); } } 8.对于catch子句的排列,下列哪种是正确的( ) A、父类在先,子类在后 B、子类在先,父类在后

视频监控系统常见十六种故障的解决方法

视频监控系统常见十六种故障的解决方法 在一个监控系统完工以后需要进入调试阶段、试运行阶段以后才能交付使用,有可能出现各种故障现象,例如常见的:不能正常运行、系统达不到设计要求的技术指标、整体性能和质量不理想,特别是对于一个复杂的、大型的监控工程项目来说,是在所难免的,这是就需要我们去做相应的处理来解决故障,保证系统的正常运行。 1、电源不正确引发的设备故障。 电源不正确大致有如下几种可能:供电线路或供电电压不正确、功率不够(或某一路供电线路的线径不够,降压过大等)、供电系统的传输线路出现短路、断路、瞬间过压等。特别是因供电错误或瞬间过压导致设备损坏的情况时有发生。因此,在系统调试中,供电之前,一定要认真严格地进行核对与检查,绝不应掉以轻心。 2、由于某些设备的连结有很多条,若处理不好: 特别是与设备相接的线路处理不好,就会出现断路、短路、线间绝缘不良、误接线等导致设备的损坏、性能下降的问题。在这种情况下,应根据故障现象冷静地进行分析,判断在若干条线路上是由于哪些线路的连接有问题才产生那种故障现象。因此,要特别注意这种情况的设备与各种线路的连接应符合长时间运转的要求。 3、设备或部件本身的质量问题。 各种设备和部件都有可能发生质量问题,纯属产品本身的质量问题,多发生在解码器、电动云台、传输部件等设备上。值得指出的是,某些设备从整体上讲质量上可能没有出现不能使用的问题,但从某些技术指标上却达不到产品说明书上给出的指标。因此必须对所选的产品进行必要的抽样检测。如确属产品质量问题,最好的办法是更换该产品,而不应自行拆卸修理。 4、设备(或部件)与设备(或部件)之间的连接不正确产生的问题大致会发生在以下几个方面: ⑴阻抗不匹配。 ⑵通信接口或通信方式不对应。这种情况多半发生在控制主机与解码器或控制键盘等有通信控制关系的设备之间,也就是说,选用的控制主机与解码器或控制键盘等不是一个厂家的产品所造成的。所以,对于主机、解码器、控制键盘等应选用同一厂家的产品。 ⑶驱动能力不够或超出规定的设备连接数量。比如,某些画面分割器带有报警输入接口在其产品说明书上给出了与报警探头、长延时录像机等连接的系统主

运行中隔离开关发热及异常情况处理

张丽英1 董永杰1 张涛2 (1、濮阳市供电公司,河南濮阳4570002、南阳电力技工学校,河南南阳473000) 摘要:根据变电站设备运行实际,探讨了隔离开关常见故障。研究了隔离开关触头过热事故的原因及应采取的措施。为变电站实施反事故技术措施提供了依据。 关键词:隔离开关;电弧侵蚀;收缩电阻;过热事故 隔离开关在高压电气设备序列中属通断类设备。由于其工作频繁,使用范围广泛,过热故障时有发生。我们有必要对隔离开关的过热故障进行分析研究,使其安全、可靠的发挥应有的作用。 1隔离开关过热故障的分析 由于隔离开关各结构部件基本外露,所以它的故障大体上属于外部故障。隔离开关一部分过热故障集中在导电罩、主触头和刀口压指等处,一部分过热故障集中在隔离开关接线端,线夹与导线的连接处。 隔离开关过热故障的原因主要有以下几种: ①隔离开关接线端与导体触头长期裸露于大气中运行,极易受到水蒸气、腐蚀性尘埃和化学活性气体的侵蚀,在连接件接触面上形成氧化膜,使导电体表面电阻增加,造成接触不良而发热。 ②导线在风力舞动下或因负荷变化,引起连接件因周期性热胀冷缩,造成连接螺丝松动减小了连接件有效接触面积,增大接触处的收缩电阻。受风力影响的故障,一般是发热触头处在隔离开关的出线侧,引线过长(3m以上)处于悬垂状态。大风时严重摇摆,滚动触头受力后,使各滚动触指接触压力失衡,造成接触电阻增大发热。还有GW10-220W隔离开关因管母摆动,使刀闸夹件松弛,造成动静触头处弧光放电。 ③安装检修不符合工艺要求,使倒闸操作中隔离开关触头合不到位,或过止点。 ④设计结构不合理。 2 隔离开关触头在运行中的过热机理分析 触头是隔离开关中的一个元件,其性能好坏对高压电器整体性能起着关键作用。 隔离开关触头过热的主要因素: ①机械磨损。触头在不断的闭合过程中,承受着机械闭合力的冲击,从而造成触头的变形、龟裂与剥落,统称为机械磨损。 ②接触电阻。接触电阻产生的原因有两个:一是表面膜影响,二是收缩电阻。当动静触头相互接触时,仅有少数突出点真正接触,结果使电流收缩至有限的几个载流点,这种现象叫收缩电阻。我公司一台JYN2-10-31D型手车开关隔离插头主回路动、静隔离触头烧损就是收缩电阻造成的。现场巡视设备中也发现该JYN2-10-31D型手车开关隔离插头放电现象与理论分析相吻合。我们在变电站巡视设备,亲眼目睹了一次事故过热过程:1)隔离插头触头间出现兰色、红色的放电火花及“呲呲”的放电声。2)电弧侵蚀的过程中声响变大,动静触头烧熔后,烧坏有机质绝缘护罩产生弧光飘移,发展为相间短路烧坏开关。这样在现场发现事故前兆的几率一般是很低的,因此对其进行分析就显得更加重要。 ③电弧侵蚀。隔离开关开闭过程中电弧作用,能使触头表面的金属熔融,蒸气飞溅而散失,这种现象称为电弧侵蚀。它决定触头的使用寿命。 ④熔焊。当触头在闭合状态下,由于通过很大的短路电流或过载电流,使触头发热而形成熔焊称为静熔焊。当触头在闭合过程中由于弹跳而产生的电弧所形成的熔焊称为动熔焊。如果触头熔焊后的焊接强度大于开关的机械分断力,触头就不能断开。如我公司的胡村站

java异常处理例题代码

App9_1.java:输出一个数组的所有元素,捕获数组下标越界异常和除娄为0异常。public class App9_1{ public static void main(String args[]){ int i; int[] a={1,2,3,4}; for(i=0;i<5;i++) System.out.println(" a["+i+"]="+a[i]); System.out.println("5/0"+(5/0)); } } App9_2.java:使用try-catch-finall语句对程序中的异常进行捕获与处理。 public class App9_2{ public static void main(String args[]){ int i; int a[]={1,2,3,4}; for (i=0;i<5;i++){ try{ System.out.print("a["+i+"]/"+i+"="+(a[i]/i)); } catch(ArrayIndexOutOfBoundsException e){ System.out.print("捕获到了数组下标越界异常"); } catch(ArithmeticException e){ System.out.print("异常类名称是:"+e); //显示异常信息 } catch(Exception e){ System.out.println("捕获"+e.getMessage()+"异常!"); //显示异常信息 } finally{ System.out.println(" finally i="+i); } } System.out.println("继续!!"); } } App9_3.java:使用throw语句在方法中抛出异常。 public class App9_3{ public static void main(String args[]){ int a=5,b=0; try{ if (b==0) throw new ArithmeticException(); //抛出异常,不是必须的 else System.out.println(a+"/"+b+"="+a/b); //若不抛出异常,则运行此行

中控考勤机常见问题及解决办法

问:机器开机正常,为什么验证指纹的时候会死机? 答:首先,到系统信息里查看纪录数是否已存满;其次到高级设置里恢复出厂化设置;如果故障依然存在,请清空所有用户/指纹/考勤记录。清空后还是死机请返回维修。 问:RS232/485和TCP/IP不能通讯的问题解决方法? 答:A:用232线连接好软件后, (1)点击连接按钮后,看等待时间,1秒钟就显示连接失败,那就是线和机器,线和电脑之间没有接好,接触不良,或是线本身问题。一般正常连接的判定时间是3秒左右。 (2)如果排除连接线路问题后还是连接失败,则恢复机器出厂设置再进行连接。(降低波特率至38400或更低) (3)换电脑测试,可能是电脑串口坏了。 (4)如果仍不通,可能机器硬件坏了,返厂维修。 B:RS485的判断方法基本相似,但还要判断485的两根接线+,-极是否接反。 C:TCP/IP不通讯的问题:先看TCP/IP连接端口的指示灯是否亮(并非所有机器都有指示灯)主要是看是否ping得通,接交换机的情况可用多个口测试一台机器和用同一口同一根线测试多台机器,看是否能ping得通。如果还是拼不通检查机器网络设置,看是否在同一网段内等(修改通讯设置后要重启机器)。如果还是不行,则可能是网络芯片问题,请返回维修。ping的通但连不通的情况下可能有三个原因:一,机器内以太网选项设置成了否。二,网内已经有了一个同样IP。三,电脑或交换机屏蔽了4370端口,请关闭防火墙再连接。 问:我的机器可不可以连接到广域网?

要求指纹机拥有直接的外网IP地址,不需要拨号,直接连接到互联网。 2、端口映射技术(虚拟服务器技术) 具体讲就是,通过开放特定的端口,将外部网络的访问指向到网络中特定的计算机端口的上。如:CCProxy遥志代理服务器,其端口映射功能就可以做到。 3、IP对映技术 也叫IP映射技术,是指将外部网络对本局域网对外的公网IP的访问转换为对局域网内部指定计算机的访问。这样外部网络就可以可以连接内部特定的计算机。 4、VPN(虚拟局域网)技术 这时目前指纹考勤机推荐使用的网络技术。 问:用于电脑和考勤机连接的交叉线的连线顺序是怎样的? 答:国际标准的568a:绿白、绿、橙白、蓝、蓝白、橙、棕白、棕 国际标准的568b:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕 问:机器使用485方式要注意哪些问题? 答:连接方面,要使用屏蔽双绞线,当距离较远时使用有源转换器更稳定;485连接线的正负要接正确,不同的机器接线不同,有以下两种情况:机器串口4〈——〉转接头4(485A),机器串口7〈——〉转接头5(485B);机器串口6〈——〉转接头4(4 85A),机器串口9〈——〉转接头5(485B)。设置方面,在通讯设置里485要选为是,波特率选项低一点,最好不用115200 。 问:将机器接入广域网中,在总部可以控制各台机器,怎样实现? 答:使用代理服务器的端口映射功能,在总部设置权限后将权限上传至各地机器即可。 问:什么是休眠?怎样设置和取消休眠设置? 答:休眠是机器的显示屏和指纹采集灯都不亮只有电源指灯在闪的一种节电状态,只要

java异常处理试题及答案

异常处理练习题 一、选择题 1.java中用来抛出异常的关键字是 (C) A、try B、catch C、throw D、finally 2.关于异常,下列说法正确的是(A) A、异常是一种对象 B、一旦程序运行,异常将被创建 C、为了保证程序运行速度,要尽量避免异常控制 D、以上说法都丌对 3.(A)类是所有异常类的父类。 A、Throwable B、Error C、Exception D、AWTError 4.java语言中,下列哪一子句是异常处理的出口(C) A、try{…}子句 B、catch{…}子句 C、finally{…}子句 D、以上说法都丌对 5.下列程序的执行,说法错误的是 (C) public class MultiCatch { public static void main(String args[]) { try { int a=args.length; int b=42/a; int c[]={1}; c[42]=99; System.out.println(“b=”+b); } catch(ArithmeticException e) { System.out.println(“除0异常:”+e); } catch(ArrayIndexOutOfBoundsException e) { System.out.println(“数组超越边界异常:”+e); } } } A、程序将输出第15行的异常信息 B、程序第10行出错 C、程序将输出“b=42”

D、程序将输出第15和19行的异常信息 6.下列程序的执行,说法正确的是(D) class ExMulti { static void procedure() { try { int c[]={1}; c[42]=99; } catch(ArrayIndexOutOfBoundsException e) { System.out.println(“数组超越界限异常:”+e); } } public static void main(String args[]) { try { procedure(); int a=args.length; int b=42/a; System.out.println(“b=”+b); } catch(ArithmeticException e) { System.out.println(“除0异常:”+e); } } } A、程序只输出第12行的异常信息 B、程序只输出第26行的异常信息 C、程序将不输出异常信息 D、程序将输出第12行和第26行的异常信息 7.下面程序抛出了一个“异常”并捕捉它。请在横线处填入适当内容完成程序。class TrowsDemo { static void procedure() throws IllegalAccessExcepton { System.out.println(“inside procedure”); throw__new_____IllegalAccessException(“demo”);

C异常处理(精)

#include "stdafx.h" #include #include #include // 内存泄露检测机制 #define _CRTDBG_MAP_ALLOC #ifdef _DEBUG #define new new(_NORMAL_BLOCK, __FILE__, __LINE__ #endif // 自定义异常类 class MyExcepction { public: // 构造函数,参数为错误代码 MyExcepction(int errorId { // 输出构造函数被调用信息 std::cout << "MyExcepction is called" << std::endl; m_errorId = errorId; } // 拷贝构造函数 MyExcepction( MyExcepction& myExp { // 输出拷贝构造函数被调用信息 std::cout << "copy construct is called" << std::endl; this->m_errorId = myExp.m_errorId; }

~MyExcepction( { // 输出析构函数被调用信息 std::cout << "~MyExcepction is called" << std::endl; } // 获取错误码 int getErrorId( { return m_errorId; } private: // 错误码 int m_errorId; }; int main(int argc, char* argv[] { // 内存泄露检测机制 _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ; // 可以改变错误码,以便抛出不同的异常进行测试 int throwErrorCode = 110; std::cout << " input test code :" << std::endl; std::cin >> throwErrorCode; try { if ( throwErrorCode == 110 { MyExcepction myStru(110;

回转窑在运行中出现异常现象、处理方法及安全事项

编订:__________________ 单位:__________________ 时间:__________________ 回转窑在运行中出现异常现象、处理方法及安全事 项 Standardize The Management Mechanism To Make The Personnel In The Organization Operate According To The Established Standards And Reach The Expected Level. Word格式 / 完整 / 可编辑

文件编号:KG-AO-5760-56 回转窑在运行中出现异常现象、处 理方法及安全事项 使用备注:本文档可用在日常工作场景,通过对管理机制、管理原则、管理方法以及管理机构进行设置固定的规范,从而使得组织内人员按照既定标准、规范的要求进行操作,使日常工作或活动达到预期的水平。下载后就可自由编辑。 (一)、安全注意事项 1.任何修理工作均必须在停窑后进行,同时应在电动机开头上挂上“禁止开动”的标志。 2.运转中,严禁用手或其他工具等探入轴承、减速器或大齿轮罩内部进行任何修理、检查、清洗等工作,不得拆除任何安全防护装置,如联轴器罩等。 3.检修所用的工具及零件不得放在回转机件上,尤其是托轮上。 4.转窑前必颚式破碎机价格须发出警报信号并严格检查,确认回转窑内无人,然后才能起动窑传动装置。 其实设备出现异常的问题就是因为,我们平常没有技术的检查保养维护,只要把设备当做人一样的看

待,定期的对设备进行检查和保养,相信设备就不会再出现一些小毛病了。 (二)、运转中的异常现象及处理办法 1.短期停窑后起动困难,一般是由于盘窑不及时造成窑中心线弯曲所致。通常弯曲的凸向部分在下。如弯曲不大,可将窑转至筒体弯曲凸各部分向上,稍停片刻,加热弯曲部分的筒体。当温度较高时,须慢转窑几周后,再使弯曲凸向部分停在上方。如此反复进行直至基本复原为止。 如果筒体弯曲较大,建议进行大修处理。 2.发现任何一档两个托轮的轴线在不正确位置,应按有关托轮调整办法进行调整。3发现基础下沉超常应降低窑速,立即研究处理。 4.当主电源因故突然切断时,应立即启动保安电源(或自备发电)用辅助传动装置定时转窑,直至窑体完全冷却。 5.火焰不应直接接触耐火砖,如发现“红窑”(耐

Java中异常处理

第13章异常课堂练习(2理论+2习题课+2上机) 【教学目标】 ?了解异常和异常处理的概貌(第13.2节)。 ?探究使用异常处理的优点(第13.3节)。 ?区别异常的类型:Error (致命的) 和Exception (非致命的), 以及必检和免检异常(第13.4节)。 ?在方法头中声明异常(第13.5.1节)。 ?在方法中抛出异常(第13.5.2节)。 ?编写try-catch 块处理异常(第13.5.3节)。 ?解释异常是如何传播的(第13.5.3节)。 ?在try-catch块中使用finally子句(第13.6节)。 ?只为非预期错误使用异常(第13.7节)。 ?在catch 块中重新抛出异常(第13.8节)。 ?创建链式异常(第13.9节)。 ?定义自定制的异常类(第13.10节)。 【教学重点】 ?了解异常的处理机制 ?异常的解决方法 ?Exception类的作用及其使用方法 ?必检异常、免检异常的特点 【基本知识点】 1、常见异常演示 (1)算数异常:https://www.doczj.com/doc/a23582829.html,ng.ArithmeticException 在算术运算中,0作为除数时,系统将产生该异常,示例: public static void main(String[] args) { int x=10; int y=0; int m=x/y; } Exception in thread "main" https://www.doczj.com/doc/a23582829.html,ng.ArithmeticException: / by zero at exception.NotChecketException.main(NotChecketException.java:7)(2)数组越界异常:https://www.doczj.com/doc/a23582829.html,ng.ArrayInd exOutOfBoundsException 在数组下标越界时,将产生该异常,示例:

C++异常处理机制全解

C++异常处理机制全解 ▌异常处理(Exception handling) ●返回一个错误码进行异常处理(C语言): 例: boolfunc(float a, float b, float& c){ if(b==0){ return false; } c=a/b; return true; } int main() { float a=10; float b=0; float c=0; bool result=func(a, b, c); if(!result){ cout<<"The func fails!"<

int main() { float a=10; float b=0; float c=0; try{ //测试条件; func(a, b, c); //func1(); //func2(); } catch(const char* str){ //捕获异常信息; cout<

网上报税操作流程和异常处理(参考)

网上报税操作流程及异常处理 一、网上报税完整业务流程(网上申报→远程抄报税→网上扣款): 1.网上申报 使用“网上申报软件”填写申报表,导出网上“申报文件”上传至陕西省国家税务局“专用发票认证和网上申报受理系统”(网址:,并查看申报结果。(报表填写要准确无误且申报成功,确保申报成功); 2.远程抄报税 进入“增值税防伪开票系统”首先应正常抄税,再点击“远程抄报”模块,依次点击:报税状态→远程报税→报税结果;(必须确保在“报税处理”模块已将本月税抄至IC卡中,才能点击“远程抄报”导航图中的四个图标,每个步骤都有对应提示); 3.网上扣款 进入航天信息申报软件点击办税平台或进入陕西省国家税务局“专用发票认证和网上申报受理系统”(网址:,完成网上扣税工作,扣税成功后进入远程抄报模块再次点击报税状态→远程报税→报税结果→清卡操作;清卡成功后就完成了本月的抄报税工作。 二、网上报税异常处理: 1、远程抄报税比对异常: 企业进入“增值税防伪开票系统”点击“远程抄报”模块的“报税结果”,若提示“错误”,代表申报表填报有误(申报表错误栏次详见错误提示信息),此时,企业和申报软件服务单位联系(使用航天信息申报软件拨打),删除错误申报表。删除后,企业方可再重新进行网上申报、远程抄报税操作。 2、网上扣款异常: 企业登录陕西省国家税务局“专用发票认证和网上申报受理系统(网址:,点击“未缴款信息查询”,再点击“扣款”,若显示“扣款失败”,请按以下程序办理: 1)企业核实是否签订了三方协议,并保证账户余额充足; 2)企业账户若余额充足,需到签订三方协议的银行查询税款是否已被扣除; 3)企业如查询到账户内未扣除税款,需携带当期申报表到税务大厅办理扣缴税款业务。

Java作业实验六---异常处理

提交方式: 把文件名改为学号姓名,提交文档和源码(只需提交最顶层包文件夹) 实验六异常处理 一、实验目的 1.学会利用Try-catch-finally语句来捕获和处理异常; 2.掌握自定义异常类的方法。 二、实验要求 1.通过编程理解系统异常处理的机制和创建自定义异常的方法。 2.掌握基础类。 三、实验内容 (一)异常处理机制 1. 编写使用try…catch 语句处理异常的程序文件Demo4_1.java,

编译并运行程序,并把运行结果复制在下面 。 注意:如果在catch 语句中声明的异常类是Exception,catch 语句也能正确地捕获,这是因为Exception是ArithmeticException的父类。如果不能确定会发生哪种情况的异常,那么最好指定catch的参数为Exception,即说明异常的类型为Exception。 2、源文件是Demo3_2.java。要捕捉的异常是除数为零和数组下标越界。通过修改a和c[]下标值体验程序。 【思考】 ①先运行上面程序,观察运行结果。 ②按下条件分别修改数据,编译后运行,观察输出结果,分析在try…catch块里那些语句没有被执行,为什么? 块外那些语句可被执行到,为什么? 修改a=0,保持c[2]=200; 保持a=10,修改c[3]=200, 修改a=0,修改c[3]=200; ③再添加一个catch{Exception e}{ },位置在最前面,观察编译信息,说明什么? 3、编写Demo3_3.java 程序,计算两数相除并输出结果。使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。源代码如下:

C 中异常处理的语法 try catch throw - 大漠一抹云 樊书林 - 博客园

C 中异常处理的语法try catch throw - 大漠一抹云樊书林 - 博客园 C++中异常处理的语法。 关键字 1、try 2、catch 3、throw 其中关键字try表示定义一个受到监控、受到保护的程序代码块;关键字catch与try遥相呼应,定义当try block(受监控的程序块)出现异常时,错误处理的程序模块,并且每个catch block都带一个参数(类似于函数定义时的数那样),这个参数的数据类型用于异常对象的数据类型进行匹配;而throw 则是检测到一个异常错误发生后向 外抛出一个异常事件,通知对应的catch程序块执行对应的错误处理。 语法

1、还是给一个例子吧!如下: int main() { cout << "In main." << endl; //定义一个try block,它是用一对花括号{}所括起来的块作用域的代码块 try { cout << "在try block 中, 准备抛出一个异常." << endl; //这里抛出一个异常(其中异常对象的数据类型是int,值为1) //由于在try block中的代码是受到监控保护的,所以抛出异常后,程序的 //控制流便转到随后的catch block中 throw 1; cout << "在try block 中, 由于前面抛出了一个异常,因此这里的代码是不会得以执行到的" << endl; } //这里必须相对应地,至少定义一个catch block,同样

它也是用花括号括起来的 catch( int& value ) { cout << "在catch block 中, 处理异常错误。异常对象value的值为:"<< value << endl; } cout << "Back in main. Execution resumes here." << endl; return 0; } 2、语法很简单吧!的确如此。另外一个try block可以有多个对应的catch block,可为什么要多个catch block呢?这是因为每个catch block匹配一种类型的异常错误对象的处理,多个catch block呢就可以针对不同的异常错误类型分别处理。毕竟异常错误也是分级别的呀!有致命的、有一般的、有警告的,甚至还有的只是事件通知。例子如下: int main() {

SCADA监控系统常见故障处理手册

目录 第一章:1.5MW SCADA监控 1.1塔底屏 1.1.1塔底屏重启后不能自动登陆系统 1.1.2Client.exe软件启动时报错 1.1.3塔底屏软件启动不正常 1.1.4塔底无数据,中控室显示正常 1.1.5无法使用远程桌面连接到塔底屏 1.1.6更换塔底屏后,塔底屏监控软件配置完成后软件无法启动1.2数据库及监控软件 1.2.1风机监控数据压缩包正常生成但关系数据库存储异常(利用率)1.2.2监控软件上查询显示正常,数据中心压缩数据包也正常但使用 数据分析工具查询数据异常,表现为变量数据整体偏移 1.2.3发电量汇总及日报中发电量统计为0 1.2.4在查询发电量及生成日报时如果风机发电量为0则查询缓慢1.2.5中控室前台监控机风机监控显示正常但后台工控机没有显示1.2.6塔底通讯正常但中控室显示异常 1.2.7发现某台风机报出的故障信息与实际故障不符 1.2.8配置服务器启动lampp失败

1.2.9启动监控程序显示无法连接数据库 1.2.10储存多条报警信息或多条操作员日志 1.2.11发电量与功率不符 1.2.12现场发电量修复 1.3通讯相关 1.3.1整条通讯线路通讯中断 1.3.2某台风机监控通讯中断 1.3.3风机通讯闪断 1.4SCADA硬件及其它网络设备 1.4.1防火墙VPN远程连接无法第二阶段协商成功 1.4.2控创服务器无法开机解决办法。 1.4.3服务器数据溢出 1.4.4忘记MOXA交换机IP地址,如何重新配置交换机 1.4.5Cisco路由器及交换机掉电后配置被清空 1.5与第三方通讯 1.5.1第三方与我方监控机opc无法连接 1.5.2第三方与我方监控机ModBus通讯不正常或无法建立数据连接 第二章:2、3、6MW SCADA监控 2.1打开监控界面显示无法浏览网页

相关主题
文本预览
相关文档 最新文档