`
黑色骑士
  • 浏览: 4038 次
  • 性别: Icon_minigender_1
  • 来自: 绍兴
最近访客 更多访客>>
社区版块
存档分类
最新评论

对异常和错误机制粗略见解

阅读更多
   什么是异常和错误?用两个英语单词表示,就是Error与Exception 。我对两个的解释是,Error是无法避免的,比如各种硬件故障,而Exception 则是可预见的,我把它看做程序的缺陷。很多异常是由于编写者的逻辑错误所引起的,最常见的例子就是数组越界:
IndexOutOfBoundsException,当程序运行的过程中,数组发生越界,如果你未对其进行处理,则会抛给虚拟机,而虚拟机中已经有对这些异常进行处理的机制。
    另一种就是使用try...catch,由于我对这使用不多,所以以下面这个简单的代码为例说明:
public class Exercise
{
   int[] a=new int[10];
   int i;
public static void main(String ages[])
    {
  Exercise ex=new Exercise();
  ex.Test();
    }
/*
* 对异常进行处理
*/
public void Test()
{
   //通过try catch 获得异常
  try {
           for(i=0;i<50;i++)
           {
           a[i]=i;
           }
  
   }
  catch (Exception e)
   {
        e.printStackTrace();
                //打印出错时的i               
                 System.out.println("当i="+i+"出错");
   }

     }
}
在控制台会打印出:
java.lang.ArrayIndexOutOfBoundsException: 10
at ExpecTion.Exercise.Test(Exercise.java:22)
at ExpecTion.Exercise.main(Exercise.java:10)
当i=10出错

    其实使用try...catch的效果与这个基本一致,这其中的原因便是上面提到的虚拟机中已有的对这些异常处理的机制。try...catch在其中的作用是在这层捕获异常。这些即使不用try...catch也能正常编译的异常称为运行时异常:RuntimeException,这些异常一般是由程序逻辑错误引起的。
    而真正需要使用到try...catch的异常往往是非运行时异常,即必须进行处理的异常。比如在createNewFile()时,由于在建立File类时给定的路径不一定存在,所以会产生异常。这些异常如果不处理,Eclipse是无法正常编译的,这时try...catch的作用就显现出来了。这时常规的有两种做法:throws、throw或者try...catch。throws是用来声明一个方法可能抛出的所有异常信息,throw则是指抛出的一个具体的异常类型。try...catch在其中的作用是在这层捕获异常,并制定相应的处理方法。例子仍然是最简单的代码(对createNewFile()):

/*
* 对异常进行处理
* 用throws处理异常
*/
public void Test () throws Exception
{
    String s="c\\";
File f=new File(s);
    f.createNewFile();
}

PS(这是本人的第一篇博客,写的比较烂,请大家多多谅解哈)。
分享到:
评论

相关推荐

    粗略的外卖界面

    在实际开发过程中,我们还需要考虑其他因素,比如数据的异步加载(使用AsyncTask或LiveData)、网络请求库(如Retrofit或OkHttp)的使用、错误处理和异常捕获、UI性能优化等。此外,为了提高用户体验,还可以引入...

    一份粗略的软定时器代码

    一份软定时器的链表实现粗略代码,在创建节点的时候没有分配地址空间,需要加上一句malloc,还有就是释放的时候也需要添加一句代码

    基于双层注意力机制的深度学习电影推荐系统.pdf

    第一层注意力机制学习用户行为和电影特征之间的粗略关系,而第二层注意力机制学习用户行为和电影特征之间的精细关系。通过这种双层注意力机制,该系统可以学习到更加准确的用户行为和电影特征之间的关系。 深度学习...

    联接机制与符号机制相结合的机器学习系统:发展与展望.pdf

    未来的研究将继续探索连接机制与符号机制的最佳结合方式,以开发出更加智能和适应性强的机器学习系统。这不仅对于理论研究具有重要意义,也将对人工智能的实际应用产生深远影响,如自动驾驶、医疗诊断、金融预测等...

    Android例子源码Socket实现粗略的聊天室功能.zip

    8. **异常处理**:在网络编程中,错误处理至关重要。需要捕获和处理SocketException、IOException等网络相关的异常,以确保应用的健壮性。 9. **断线重连机制**:考虑到网络环境的不稳定,客户端可能需要具备断线后...

    Biformer 注意力机制论文

    这种机制可以分为两个步骤:首先,在粗略区域级别上过滤掉不相关的键值对,然后在剩余的候选区域中应用精细的token-to-token 注意力。这种方法可以实现动态稀疏注意力,减少计算复杂度和内存占用。 BiFormer 的实现...

    C 标准I/O库的粗略实现教程

    本篇教程将探讨如何粗略实现C标准I/O库中的核心功能,如`fopen`、`getc`和`putc`。 首先,`fopen`函数是C库中的一个接口,用于打开一个文件并返回一个指向`FILE`类型的指针。这个函数实际上是对操作系统提供的系统...

    行业分类-设备装置-位置确定系统中粗略位置注入的资格审定.zip

    通过对以上知识点的深入理解和应用,可以确保位置确定系统在粗略位置注入方面的资格审定达到行业标准,从而提高整个系统的性能和可靠性。这份"位置确定系统中粗略位置注入的资格审定.pdf"文件很可能是详细阐述这些...

    linuxcnc关于HAL部分的中文粗略整理

    本文档只是对HAL的部分内容进行中文的粗略的整理 有些我还觉得不重要的没有整理 后期如果整理 我会零分贴上来

    课程设计粗略计算

    XY数控工作台装配图,是课程设计的一般模板,可以领你很好的计算

    基于机器学习的异常路径检测.zip

    它利用机器学习,尤其是深度学习技术,对异常路径进行检测。通过理解并运行这些代码,我们可以学习到如何构建和应用异常检测系统,这对于任何想要在安全监控或数据分析领域深化技能的人来说都是宝贵的资源。

    基于数据挖掘分类的创新创业团队管理考核机制研究.pdf

    通过聚类算法对团队成员进行测评分析,研究人员能够以分类规则的形式将团队成员粗略地划分为不同等级。然后,利用ID3决策树算法来生成更精细化的最终个人量化考核得分表,该得分表是基于测评等级以及创业团队核心...

    火灾检测的粗略匹配算法 matlab

    在IT行业中,火灾检测是计算机视觉领域的一个重要应用,它主要利用图像处理和机器...然而,要注意的是,粗略匹配算法仅能提供初步的火源指示,后续可能还需要更精确的检测算法进行确认和精确定位,以确保报警的准确性。

    socket编程之粗略了解

    本文将对Socket编程进行粗略的讲解,帮助初学者理解其基本原理和使用方法。 首先,Socket源自BSD(Berkeley Software Distribution)操作系统,是一种通过标准的UNIX文件描述符进行通信的方式,现已被广泛移植到...

    mvdost:用于压力测试系统和建模基于 DoS 的攻击的多向量拒绝服务工具,以创建统计异常和基于签名的警报机制

    移动端用于压力测试系统和建模基于 DoS 的攻击的多向量拒绝服务工具,以创建统计异常和基于签名的警报机制。 这是一个粗略的版本,所以它可能有问题,但核心功能就在那里。 有关用法,请使用 -h 或 --help。 该工具...

    Socket实现粗略的Android聊天功能.

    - 网络操作可能出现各种异常,如连接超时、数据传输错误等,因此需要适当地捕获和处理异常,保持应用的稳定运行。 7. **安全性**: - 考虑到安全因素,实际应用可能需要使用SSL/TLS加密通信,防止数据被窃听或...

    安卓Android源码——例子源码Socket实现粗略的聊天室功能.zip

    源码中应该包含适当的异常处理机制,确保应用在遇到问题时能够正常运行或向用户反馈错误信息。 6. **用户界面(UI)**:在安卓应用中,用户界面通常是使用XML布局文件和Activity类创建的。用户可以在这里输入消息并...

    粗略实现spring创建bean

    Spring 框架是 Java 后端开发中的核心组件,它提供了一种强大的依赖注入(Dependency Injection,简称 DI)机制,使得开发者可以更加专注于业务逻辑,而非对象的创建与管理。"粗略实现spring创建bean"这个主题主要...

    粗略劳动力计算.docx

    这篇文档主要探讨的是如何进行粗略的劳动力计算,以便于更有效地分配和调度人力资源。 计算思路的核心是基于工程的具体情况,如模板量、施工效率和各工种之间的比例。首先,我们需要确定单层模板的面积,并根据建筑...

    太阳位置粗略计算下载

    对于用户来说,只需提供必要的输入,如日期、时间和地点,脚本就能返回太阳的粗略位置,便于进行后续的追踪或控制操作。 在实际应用中,这样的计算工具对于天文爱好者、太阳能安装者或控制系统开发者都非常有用。...

Global site tag (gtag.js) - Google Analytics