zoukankan      html  css  js  c++  java
  • 【java】关于异常处理的思考

    所谓异常,是程序执行期间发生的各种意外或错误。比如用户输入出错、所需文件找不到、运行时磁盘空间不够、内存不够、算术运算错(数的溢出、被零除等)、数组下标越界等。所以异常处理机制十分有用。但为了防止代码过于冗长,运行时间过长等,并不是要在每一句话上都加上try catch语句。

    最普遍的在于对用户输入的限制,对于计算器这一类,要求用户输入的数大小不超过其计算范围(如int的取值范围为 -2147483648~2147483647 ,占用4个字节),且对于计算结果超出范围发正常显示的错误也要考虑。还有数学上的被零除问题,然后要结合实际如果限定为实数集,那么被开方数应该大于等于零等等。

    而登录注册界面则要求用户名使用规定的字符,并且长度在限定范围内,并且要考虑输入为空的情况。调用数据库的数据传入出现问题也要有相应的报错,毕竟数据库的数据类型与程序并不相同。

    内存不够,目前的成都很难涉及到,但却很致命。可以用一个没有终止条件的递归来尝试,但是软件会自动停止继续运行他认为没有结果或短时间没有结果的程序。

    在程序运行过程中还会出现数组下标越界的情况,但如果是自动对于i的只进行自增等运算,那么对于a[i]的访问不必加上异常处理,但如果是由用户的输入,间接或直接来决定对于a[i]的访问,那么就需要加上异常处理机制。直接输入i还可以由对于输入的限制来防止数组下标越界,但如果是通过用户输入进行复杂的计算来决定i的值,那么就只能在访问a[i]的时候加上异常处理。

    eclipse上我观察到如果要定义文件类相关的对象,那么如果不套上try catch 编译器会报错,文件这里实在是太耗脑细胞了。文件访问可能会出现文件不存在的情况,如何打开一个不存在的文件呢?我选择报错!即使你成功访问了文件,传到你变量里的值可能也会出错,毕竟文件里的内容可能和你想象中的并不一样,电脑对于文件的判断也可能和你想象的不一样。那么在之后调用变量进行运算的时候,程序崩掉是在所难免的。有时会用数组进行接收,那更是很容易崩了。在这种高危地带,加上异常处理是必须的。

    总之,就是各种东西传来传去最容易出错、可能会很傻的用户输入容易出错、你没考虑到的各种溢出超出容易出错。

    1500字是不存在的。

  • 相关阅读:
    New Audio Codec (3) : Design of a Scalable Parametric Audio Coder(可分级正弦模型)
    英国旅游庄园酒店
    圣塔芭芭拉加州大学 信号压缩实验室
    mptkcodec工程(二):VS2008+Win7 编译 mptkcodec(下)
    SPIHT 编码原理,代码,应用,专利问题
    Audio Bandwidth Extension 技术主页
    【quote】free HRTF Databases available online
    New Audio Codec (4) : Daryl Ning 的 Warped LPC and Wavelet Audio Coding 方案
    mptkcodec工程(二):VS2008+Win7 编译 mptkcodec(上)
    mptkcodec工程(一):Cygwin+Win7 编译 mptkcodec
  • 原文地址:https://www.cnblogs.com/CCRNRT/p/9945919.html
Copyright © 2011-2022 走看看