首页 > 编程语言 >Java异常处理

Java异常处理

时间:2023-11-07 20:56:35浏览次数:34  
标签:Java 自定义 处理 编译 num 异常 public

三.Java异常处理

(1)什么是异常?

异常就是代表程序出现的问题。Java会将异常封装成一个异常对象,抛给JVM虚拟机,JVM虚拟机会将程序暂停再将异常对象打印出来。

(2)异常的体系

所有异常都继承了Throwable类。

Error:代表的系统级别错误(属于严重问题),一般开发人员用不到,属于是sun公司自己用的。

Exception:代表程序可能出现的问题。

  • RuntimeException运行时异常:编译阶段不会出现错误提醒,运行时出现的异常(例如数组越界)
  • 其他异常:编译时异常:编译阶段会出现错误提醒的

(3)异常的处理

方法一:选中代码块,Ctrl+alt+T键选择try/catch将代码块包围捕获异常

try{
    //监视的代码
}catch(异常类型1 变量){        //捕获异常
    
}catch(异常类型2 变量){        //捕获异常
    
}finally{                         //无论是否出异常,都会执行
    
}

方法二:在方法上使用throws关键字,可以将方法内部出现的异常抛出去给调用者处理

public static void main(String[] args) throws 异常1,异常2,异常3{
    
}

(4)自定义异常

自定义运行时异常

运行时异常就是编译时不报错(编译器不提醒),程序运行时才报错

自定义运行时异常步骤:

  • 定义一个异常类继承RuntimeException
  • 重写构造器。
  • 通过throw new异常类来创建异常对象并抛出

自定义运行时异常类

public class MyException extends RuntimeException{   //继承RuntimeException
    /*重写构造器*/
    public MyException(){   //无参构造器
        
    }
    public MyException(String message){   //有参构造器
        super(message);   //将异常信息送给父类
    }
}

自定义异常的使用

public MyClass{
    
    public static void main(String[] args){   //主函数
    	try{
            number(223);     //调用方法           
        }catch(Exception e){   //捕获异常
            e.printStackTrace();   //接收抛出的异常,打印异常信息
            
        }
	}
    
    /*自定义方法*/
    public static void number(int num){
        if(num > 0 && num < 150){
            System.out.println("合法数字":num);
        }else{
            //如果数字不合法,则抛出异常
            throw new MyException("数字不合法:"+num);
        }
    }
}

自定义编译时异常

自定义编译时异常的方法与自定义运行时异常的方法相同,但自定义编译时异常需要继承的是Exception类。

标签:Java,自定义,处理,编译,num,异常,public
From: https://www.cnblogs.com/sillyfox/p/17815920.html

相关文章

  • JavaScript--变量和数据类型
    使用var声明变量vartest=20;test="张三";变量可以存放不同类型的值var定义域分布在全局并且可以重复定义letlet关键字所在的代码块内有效JavaScript中分为:原始类型和引用类型5种原始类型number:数字,整数或者小数string:字符、字符串boolean:布尔null:空undefined:......
  • 【JavaScript】事件轮询
    1、先参考搞懂JavsScript异步— 事件轮询2、明确几点:setTimeout、DOMEvent、HttpRequest、setInterval、setImmediate(Node.js独有)的回调、I/O操作、UI渲染均会被加载到消息队列(macrotask宏任务)。Promise的回调、MutationObserver、process.nextTick(Node.js独有)会被加......
  • 无涯教程-批处理 - TASKKILL函数
    此批处理命令结束一个或多个任务。TASKKILL-语法Taskkill/im[taskname]TASKKILL-示例@echooffTaskkill/immspaint.exe上面的命令会将终止消息发送到MSPaint的任何打开的程序。参考链接https://www.learnfk.com/batch-script/batch-script-taskkill.html......
  • Java的流
    一、数据流概念1.输入输出的概念​输入输出技术用于处理设备之间的数据传输,指的是程序和外部设备或者其他计算机进行数据交换的过程,比如读/写文件、网络通信等。将外部数据读取到内存中称为输入,将内存数据输出到磁盘、光盘中称为输出。2.流的概念Java程序中,对于......
  • C#中日期的处理
    字符串转换为日期第一种方式使用Convert.ToDateTime方法,该方法有很多重载方法,这里笔者就介绍两个常用的重载方法 1Convert.ToDateTime(string) 使用该方法转化有一个限制,就是字符串的格式应该类似为“yyyy-MM-ddhh:mm:ss”的,比如:“2017-12-1200:01:11”。刚才为什么......
  • Java面向对象(三)
    方法的重写方法的重写与之前所学中方法的重载好像名字的相似,但是两者之间可以说毫不相干。方法的重写是当父类中的方法已经没办法满足子类的需求时。子类就需要将方法进行重写。方法重写的要求父类的方法并不是所有的方法都可以被重写,重写也是需要遵守一定的规则:①重写的方法......
  • 无涯教程-批处理 - SYSTEMINFO函数
    此批处理命令显示计算机及其操作系统的配置。SYSTEMINFO-语法systeminfoSYSTEMINFO-示例@echooffsysteminfo上面的命令将显示当前系统上的系统信息。以下是输出的子集。HostName:WIN-50GP30FGO75OSName:MicrosoftWindowsSer......
  • java代码中拼接的长字符有么又快速去掉+好的方法?
    在Java中,拼接长字符时使用+运算符会导致性能下降,因为每次拼接都会创建一个新的字符串对象。为了提高性能,可以使用StringBuilder或StringBuffer类来代替+运算符。这两个类都提供了操作字符串的方法,并且在拼接长字符时效率更高,因为它们是可变的。示例代码如下:StringBuilder......
  • 安卓程序和java程序的区别,举个详细的例子
    安卓程序(AndroidApp)和普通的Java程序都使用Java语言编写,但它们的开发、运行环境和目标平台有很大的不同。以下是一些关键的区别:开发环境和工具:安卓程序:使用AndroidStudio作为主要的开发环境,它提供了专门为Android开发设计的工具和插件。这些工具包括模拟器、界面设计工具、性......
  • 安卓程序和java程序的区别,我们用生活中的方式给你比喻
    想象一下,你有两个厨师(程序员),他们都擅长使用相同的食材(Java语言)。但是,他们工作在不同的餐厅(平台)并且制作不同种类的菜肴(程序)。安卓厨师(Android程序员):这位厨师在一家专门提供外卖的快餐店工作(Android设备)。他使用的是快餐店提供的特殊厨具(AndroidStudio和SDK),并遵循快餐店的食谱(A......