java实验六异常处理,java中异常处理机制是怎样的
00-1010 1.什么是例外2。例外3的结构图。捕捉异常4。声明并抛出异常1。声明异常2。抛出异常情况1。嵌套试捕2。替换返回语句5。自定义异常
00-1010异常机制:
异常机制是指当程序中出现错误时,程序如何处理。具体来说,异常发生在程序中,异常机制为提供者提供了安全的退出通道。
总的来说就是保持程序不间断运行。
程序错误:
有三种程序错误:
1.编译错误
2.运行时错误
3.逻辑错误。
(1)编译错误:由于程序没有遵循语法规则,编译器可以自行发现并提示我们错误的原因和位置。
(2)运行时错误:因为运行时环境在程序执行时发现了一个无法执行的操作。
(3)逻辑错误:因为程序没有按照预期的逻辑顺序执行。
异常是指程序运行时出现的错误,异常处理就是对这些错误进行处理和控制。
编译错误如下:
操作错误如下:
算术异常错误:
目录
常见例外:
异常名称异常描述1 Java . lang . nullpointerexception空指针异常3360对象为空,调用相应的方法。2.lang.classnotfoundexception找不到指定的类3 Java . lang . arrayindexoutofbounds exception数组下标越界4 Java . lang . numberformatexception数字格式化异常5 Java . lang . arithmeticexcept数学运算异常6java.lang.StackOverflowError内存空间溢出错误7java.lang.ClassCastException类型转换异常经常出现在方法递归调用中,8java.text.ParseException时间格式化异常经常出现在向下转换中。9 Java . util . inputmismatchexception输入类型不匹配异常经常出现在SimpleDateFormart中。
00-1010虚拟机处理异常的两种方式:
捕捉异常抛出异常捕捉异常
尝试-捕捉-最终
Try:尝试执行可能有异常的代码catch:如果try中的代码正在执行过程中并且发生了异常,则捕获该异常。如果没有异常,就不要执行。Finaliy:无论是否报告错误,其中的代码块都将被执行,通常用于释放资源。Try{ //可能出错的代码块}catch(){ //异常发生后,通常使用语句}finally{ //释放资源}
一、什么是异常
00-1010应用于方法声明,表示当前方法不处理异常,但提醒方法的调用方处理异常。
public void fun1()抛出parse exception { simple date format format=new simple date format( yyyy-MM-DD hh :MM 3360 ss );date date=format . parse( 2020-10-12 );}
00-1010 throw在方法中用于抛出异常对象,将异常对象传递给调用者,结束当前方法的执行。
void fun 2(){ throw new nullpointerexception(空指针异常);system . out . println( hello world );//红色报错,提示不可达语句,不能执行}
二、异常的结构图
>
1、嵌套try-catch
@Testpublic void fun2() { try { throw new Exception("非运行时异常,哈哈哈"); } catch (Exception e) { e.printStackTrace(); try { throw new ParseException("解析异常,哈哈哈",0); } catch (Exception ex) { ex.printStackTrace(); } }finally { try { throw new TimeoutException("超时异常,哈哈哈"); } catch (TimeoutException e) { e.printStackTrace(); try { throw new SQLException("SQL异常"); } catch (SQLException ex) { ex.printStackTrace(); } } }}
2、代替返回语句
public int funR1(){ try { return 1; }catch (Exception e){ throw new RuntimeException(); } }public int funR2(){ if(true) { return 1; }else{ throw new RuntimeException(); }}
五、自定义异常
自定义异常,通常就是定义了一个继承自Exception类的子类,那么这个类就是一个自定义异常类。通常情况下,我们都会直接继承自Exception,一般不会继承某个运行时异常类。
案例如下:
public class HeroNotExistException extends RuntimeException { private String m; public String getM() { return m; } public void setM(String m) { this.m = m; }//两个参数的有参构造,一个传递给父类Throwable,一个自己用 public HeroNotExistException(String message, String m){ super(message); this.m=m; } public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入您最欣赏的历史人物:"); String name = sc.next(); if(name.equals("孙悟空")){ try{ throw new HeroNotExistException("英雄人物不存在","哈哈"); }catch (HeroNotExistException e){ e.printStackTrace(); System.out.println(e.getM()); } } } }
到此这篇关于Java十分钟精通异常处理机制的文章就介绍到这了,更多相关Java异常处理机制内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。