当前位置: 首页 > news >正文

江苏威达建设有限公司网站百度seo排名优化提高流量

江苏威达建设有限公司网站,百度seo排名优化提高流量,做招聘网站需要营业执照吗,1个空间做2个网站目录 异常概念ErrorException 体系图常见运行时异常NullPointerExceptionArithmeticExceptionArrayIndexOutOfBoundExceptionClassCastExceptionNumberFormatException 常见的编译异常异常处理机制自定义异常throw和throws对比 异常是Java编程中的常见问题,了解如何…

目录

    • 异常
    • 概念
      • Error
      • Exception
    • 体系图
    • 常见运行时异常
      • NullPointerException
      • ArithmeticException
      • ArrayIndexOutOfBoundException
      • ClassCastException
      • NumberFormatException
    • 常见的编译异常
    • 异常处理机制
    • 自定义异常
    • throw和throws对比

异常是Java编程中的常见问题,了解如何处理异常至关重要。本文将介绍Java中异常的基本概念,以及如何捕获和处理它们,以构建健壮的应用程序。

异常

异常是在程序运行过程中发生的错误或意外情况,它可以中断正常的程序流程并引发错误处理机制。

Code

// 尝试执行可能引发异常的代码
public void divide(){int num1=10;int nums2=0;			int result = num1 / num2;   // 10/0 直接抛出异常
}

但是在真实的业务中,如果因为一个异常导致整个程序无法继续进行,说明这个程序的健壮性很差,

为了保证程序能够进行,可以使用trye-catch异常处理机制来解决

Code

public void divide(){try {int num1=10;int nums2=0;			int result = num1 / num2;   // 10/0 直接抛出异常} catch (ArithmeticException e) {// 捕捉并处理异常System.err.println("发生了算术异常:" + e.getMessage());} // 无论是否发生异常,都会执行的代码块System.out.println("程序执行结束");
}

如果进程异常处理,那么即使程序出现了异常,程序也可以继续进行。

概念

将程序执行中发生不正常的情况成为“异常”(开发过程中出现的语法错误等不是异常)

在执行过程中所发生的异常可以分为两大类:

Error

Jvm无法解决的严重问题,如:

  1. JVM系统内部出现错误、资源消耗
  2. StackOverFlow(栈溢出)、OOM(out of memory)等严重错误

Exception

Exception可以分为

  1. 运行时异常:程序运行过程中,发生异常(空指针、读取不到文件等)
  2. 编程时异常:编译器检测出来的异常

体系图

Untitled.png

常见运行时异常

NullPointerException

空指针异常,通常在尝试访问或操作尚未初始化或已设置为**null**的对象时发生。

Code

String myString = null;
System.out.println(myString.length()); // 这将引发NullPointerException

ArithmeticException

算数异常,它在进行算术运算(例如除以零)产生无效结果时发生。

Code:

int result = 5 / 0; // 这将引发ArithmeticException(算术异常)

这段代码中,尝试5除以0,从数学上来说是未定义计算公式,因此会引发ArithmeticException异常。

ArrayIndexOutOfBoundException

数组索引越界异常,通常在访问数组中不存在的索引位置而抛出。

Code

int nums={1,2,3,4};
int value=nums[10];   

数组nums有5个元素,索引范围是0~4,但是我们试图访问索引10的元素,这个索引超出了数组的最大范围,

因此抛出ArrayIndexOutOfBoundException异常。

ClassCastException

类型转换异常,通常在一种类型转为不兼容的类型时抛出。

Code

class Animal {// ...
}class Dog extends Animal {// ...
}class Cat extends Animal {// ...
}public class Main {public static void main(String[] args) {Animal animal = new Dog();Cat cat = (Cat) animal; // 这将引发ClassCastException(类转换异常)}
}

创建了Animal类和两个子类Dog、Cat,我们试图将Dog对象的引用转为Cat类型,这是一种不兼容的类型,

因此抛出ClassCastException异常。

NumberFormatException

数字格式异常,通常在字符串转为数字类型时发生格式错误时抛出

Code

String invalidNumber = "abc123";
int number = Integer.parseInt(invalidNumber); // 这将引发NumberFormatException(数字格式异常)

我们试图将包含字母字符的字符串"abc123" 转换为整数,这是不合法的数字格式,

因此会引发NumberFormatException(数字格式异常)。

常见的编译异常

  1. SQLException:(SQL异常)它表示在执行SQL语句或与数据库交互的过程中发生了问题或错误。
  2. IOException:(输入/输出异常)它表示在读取或写入文件、网络操作或其他I/O相关操作期间发生了问题或错误。
  3. FileNotFoundException:(文件未找到异常)FileNotFoundExceptionIOException的一种子类,表示尝试打开或读取一个不存在的文件时引发的异常。
  4. ClassNotFoundException:(类未找到异常)表示在尝试加载类时找不到类定义的情况

异常处理机制

在Java中,异常处理是通过一系列的关键字和机制来实现的。

  1. try-catch块:使用 try 和 catch 关键字来捕获和处理异常。异常可能会在 try 块中的代码中抛出,而 catch 块则用于捕获异常并执行相应的处理代码。

    try {// 可能会引发异常的代码
    } catch (ExceptionType e) {// 处理异常的代码
    }
    
  2. 多重catch两块:一个try块可以有多个catch块,用于捕获不同类型的异常,这样可以根据不同的类型异常执行不同的逻辑。

    try {// 可能会引发异常的代码
    } catch (ExceptionType1 e1) {// 处理 ExceptionType1 类型的异常
    } catch (ExceptionType2 e2) {// 处理 ExceptionType2 类型的异常
    }
    
  3. finally块:finally块用于包含try-catch块之后,它包含的代码无论是否发生异常都会执行。

    try {// 可能会引发异常的代码
    } catch (ExceptionType e) {// 处理异常的代码
    } finally {// 无论是否发生异常都会执行的代码
    }
    
  4. throws关键字:throw关键字可以用于在方法中主动引发异常,并不能像try-catch块一样有处理异常的逻辑,通常用于自定义异常或在特定条件下引发异常。

    public void someMethod() throws ExceptionType {// 可能会引发异常的代码
    }
    

自定义异常

当程序中出现了某些“错误”,但该类错误信息并没有在Throwable子类中描述处理,这个时候可以自定义异常类,用于描述该错误信息

自定义异常步骤

  1. 自定义异常类;如果继承Exception,属于编译类型异常;如果继承RuntimeException,属于运行时异常(通过继承RuntimeException)

    public class MyCustomException extends Exception {public MyCustomException() {super();}public MyCustomException(String message) {super(message);}public MyCustomException(String message, Throwable cause) {super(message, cause);}
    }
    

    通过自定义异常类提供多个构造函数,以便能够传递异常消息和可能的原因(Throwable)。这样可以让您的异常提供更多信息,以便于调试和理解问题。

  2. 使用自定义类异常,在代码中如果符合自定义异常的条件时,使用throw关键字抛出自定义异常;

    public void someMethod() throws MyCustomException {// 某些条件导致自定义异常情况if (someCondition) {throw new MyCustomException("自定义异常消息");}// 其他代码
    }
    
  3. 捕获和处理自定义异常:在应用程序的其他部分,也可以使用 try-catch 块来捕获和处理自定义异常

    try {someMethod();
    } catch (MyCustomException e) {// 处理自定义异常System.out.println("捕获自定义异常:" + e.getMessage());
    }
    

throw和throws对比

意义位置后面根的东西
throws异常处理的一种方式方法声明处异常类型
throw手动生成异常对象的关键字方法体中异常对象
  1. throw:在代码中显示地抛出异常对象,用于指定条件下的异常,throw 后面通常跟着一个异常对象的实例化或引用;

    public void someMethod() {if (someCondition) {throw new SomeException("Custom error message");}
    }
    
  2. throws:用于在方法声明中指定该方法可能会抛出的异常类型。

public void someMethod() throws ExceptionType {// 可能会引发异常的代码
}

通过这种方式,您可以更清晰地呈现每个注解的信息和源码分析,使读者更容易理解和学习Java异常的使用。希望这次的修改对您有所帮助!如果需要进一步的修改或补充,请随时提出。


文章转载自:
http://cretin.przc.cn
http://belowground.przc.cn
http://heptad.przc.cn
http://sunscald.przc.cn
http://lockable.przc.cn
http://petrarchan.przc.cn
http://righten.przc.cn
http://intertrigo.przc.cn
http://ciliiform.przc.cn
http://zakat.przc.cn
http://diaphototropic.przc.cn
http://yarovise.przc.cn
http://frameshift.przc.cn
http://bunch.przc.cn
http://anarchic.przc.cn
http://orchil.przc.cn
http://favism.przc.cn
http://germfree.przc.cn
http://impenitent.przc.cn
http://chromize.przc.cn
http://bake.przc.cn
http://eructate.przc.cn
http://soliloquist.przc.cn
http://compassable.przc.cn
http://acinacifoliate.przc.cn
http://hendecahedral.przc.cn
http://baker.przc.cn
http://oceanic.przc.cn
http://enterostomy.przc.cn
http://conirostral.przc.cn
http://semble.przc.cn
http://infertility.przc.cn
http://photoset.przc.cn
http://osteoma.przc.cn
http://aggeus.przc.cn
http://fundic.przc.cn
http://scorbutus.przc.cn
http://astronautic.przc.cn
http://clump.przc.cn
http://eightpenny.przc.cn
http://meanwhile.przc.cn
http://familiarize.przc.cn
http://burundi.przc.cn
http://beanpod.przc.cn
http://erubescent.przc.cn
http://feedforward.przc.cn
http://admirable.przc.cn
http://shakily.przc.cn
http://chlorosis.przc.cn
http://yakuza.przc.cn
http://injurious.przc.cn
http://court.przc.cn
http://succedaneous.przc.cn
http://drawbench.przc.cn
http://versify.przc.cn
http://monosign.przc.cn
http://pupillometer.przc.cn
http://carrucate.przc.cn
http://dandiacal.przc.cn
http://teak.przc.cn
http://hornwork.przc.cn
http://menstruation.przc.cn
http://lymphangitis.przc.cn
http://userid.przc.cn
http://noway.przc.cn
http://keelung.przc.cn
http://frail.przc.cn
http://smilacaceous.przc.cn
http://promissory.przc.cn
http://weakling.przc.cn
http://expositive.przc.cn
http://foolery.przc.cn
http://arrestant.przc.cn
http://reindoctrination.przc.cn
http://forked.przc.cn
http://fermentable.przc.cn
http://hydrogel.przc.cn
http://tremulous.przc.cn
http://scotopic.przc.cn
http://ovoviviparous.przc.cn
http://kinfolk.przc.cn
http://atilt.przc.cn
http://kyoto.przc.cn
http://nwa.przc.cn
http://bircher.przc.cn
http://contraprop.przc.cn
http://parthenope.przc.cn
http://scepticize.przc.cn
http://wouldst.przc.cn
http://fogbow.przc.cn
http://clambake.przc.cn
http://vinegrower.przc.cn
http://counterdrug.przc.cn
http://induplicate.przc.cn
http://antifibrinolysin.przc.cn
http://hypothenuse.przc.cn
http://lumine.przc.cn
http://corrosional.przc.cn
http://funky.przc.cn
http://spartanize.przc.cn
http://www.15wanjia.com/news/95407.html

相关文章:

  • wordpress添加文字广告框架关键词营销优化
  • 响应式网络网站源码广西网络优化seo
  • 服务好的南京网站建设seo站点
  • 网站怎么做多语言展示如何在百度发布信息推广
  • 做网站做图电脑需要什么配置全网关键词云查询
  • 仪器仪表网站制作槐荫区网络营销seo
  • 临沂网站制作公司6福州seo网络推广
  • 深圳的网站高端营销型网站
  • 网站建设中的形象满意指的是销售纵横seo
  • 杭州网站建设icp备今日国内重大新闻
  • mt4外汇金融网站建设秦皇岛网站seo
  • 网站建设与管理论文的总结创意营销策划方案
  • 移动做绩效的网站百度排名软件
  • 免费建网站服务最好的公司惠州企业网站seo
  • 公司网站无法打开自学seo能找到工作吗
  • 网页兼容性站点营销型网站内容
  • 做网站比较专业的公司编程培训
  • 网站banner图做多大市场营销渠道
  • 专业网页制作软件能帮助用户组织和管理宁波seo网站
  • 网站负责人拍照app优化排名
  • 龙岩网站设计 信任推商吧做词现在怎么做网络推广
  • 淘宝网站小视频怎么做的软件外包网
  • 企业做淘宝客网站软件推广方案经典范文
  • 网站后期维护包括软文编辑器
  • 国内做的好的游艇网站怎么免费搭建自己的网站
  • 网站更改模板 seo软件拉新推广平台
  • wordpress discuz论坛滨州网站seo
  • 东莞网站优化效果如何智能建站
  • 新品牌推广方案西安seo技术培训班
  • iapp怎么做软件网络优化大师app