java运行时异常中文_JAVA——运行时异常(RuntimeException)

Exception中有一个特殊的子类异常RuntimeException运行时异常。

如果在函数内抛出该异常,函数上可以不用声明,编译一样通过。

如果在函数上声明了该异常。调用者可以不用进行处理。编译一样通过。

之所以不用在函数上声明,是因为不需要让调用者处理。

当该异常发生,希望程序停止,因为在运行时,出现了无法继续运算的情况,希望停止程序后,对代码进行修正。

自定义异常时:如果该异常的发生,无法再继续进行运算,就让自定义异常继承RuntimeException.

对于异常分两种:

1、编译时被监测的异常

2、编译时不被监测的异常(运行时异常,RuntimeException以及其子类)

class FuShuException extends RuntimeException {

FuShuException(String msg)

{

super(msg);

}

}

class Demo {

int div(int a,int b)//函数上没有抛出异常,因为FuShuException是RuntimeException的子类

{

if(b<0)

throw new FuShuException("除数为负数");

if(b==0)

throw new ArithmeticException("被0除了");

return a/b;

}

}

class ExceptionDemo7 {

public static void main(String[] args)

{

Demo d = new Demo();

int x = d.div(4,-4);

System.out.println("x="+x);

}

}

输出结果:

Exception in thread "main" FuShuException: 除数为负数

at Demo.div(ExceptionDemo00.java:15)

at ExceptionDemo00.main(ExceptionDemo00.java:28)

举例:

问题是:

电脑冒烟

电脑蓝屏

要对问题进行描述,封装成对象。

可是当冒烟发生后,出现讲课进度无法继续。

出现了老师的问题:课时计划无法完成

class LanPingException extends Exception {

LanPingException(String message)

{

super(message);

}

}

class MaoYanException extends Exception {

MaoYanException(String message)

{

super(message);

}

}

class NoPlanException extends Exception {

NoPlanException(String msg)

{

super(msg);

}

}

class Computer {

private int state = 3;

public void run()throws LanPingException,MaoYanException

{

if(state==2)

throw new LanPingException("蓝屏了");

if(state==3)

throw new MaoYanException("冒烟了");

System.out.println("电脑运行");

}

public void reset()

{

state = 1;

System.out.println("电脑重启");

}

}

class Teacher {

private String name;

private Computer cmpt;

Teacher(String name)

{

this.name = name;

cmpt = new Computer();

}

public void prelect()throws NoPlanException

{

try

{

cmpt.run();

}

catch(LanPingException e)

{

cmpt.reset();

}

catch(MaoYanException e)

{

test();

throw new NoPlanException("课时无法继续"+e.getMessage());

}

System.out.println("讲课了!");

}

public void test()

{

System.out.println("LianXi");

}

}

class ExceptionTest {

public static void main(String[] args)

{

Teacher t = new Teacher("Wang");

try

{

t.prelect();

}

catch(NoPlanException e)

{

System.out.println(e.toString());

System.out.println("换老师或者放假");

}

}

}

运行结果:

LianXi

NoPlanException: 课时无法继续冒烟了

换老师或者放假

举例:

有一个圆形和长方形。都可以获取面积。

对于面积如果出现非法的数值,视为是获取面积出现问题。问题通过异常来表示。现在对这个程序进行基本设计。

//定义一个异常,让它继承运行时异常

class NoValueException extends RuntimeException {

NoValueException(String msg)

{

super(msg);

}

}

//定义一个接口

interface Shape {

void getArea();

}

//长方形实现Shape接口

class Rectangle implements Shape {

private int len,wid;

Rectangle(int len,int wid)//这里不用throws NoValueException,因为NoValueException是RuntimeException的子类

{

if(len<=0||wid<=0)

throw new NoValueException("出现非法值");

this.len = len;

this.wid = wid;

}

public void getArea()

{

System.out.println(len*wid);

}

}

class Circle implements Shape {

private double radius;

public static final double PI = 3.14;

Circle(double radius)

{

if(radius<=0)

throw new NoValueException("非法");

this.radius = radius;

}

public void getArea()

{

System.out.println(PI*radius*radius);

}

}

class Demo2

{

public static void main(String[] args)

{

Rectangle r = new Rectangle(3,4);

r.getArea();

Circle circle = new Circle(-8);

circle.getArea();

System.out.println("over");

}

}

6ba31a609bbb382c093a1c4f2d784b3e.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/397594.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内置函数isinstance和issubclass

1. isinstance&#xff08;obj,class&#xff09; 判断对象obj是不是由class生成的对象。 class Foo:passobjFoo()print(isinstance(obj,Foo))obj是Foo的生成的对象&#xff0c;返回True。如果不是&#xff0c;则返回False。 d{x:1} #ddict({x:1} #)print(type(d) is dict) pri…

JavaOne 2016——首日亮点

今年&#xff0c;为期5天的JavaOne会议中&#xff0c;4个会场的议题都进行了直播&#xff0c;演讲稿也在播出之后一并提供。\\来自Terracotta公司EHCache团队的Henri Tremblay&#xff0c;做了主题为《学习Java 8&#xff1a;Lambda表达式和函数式编程&#xff08;Learn Java 8…

指针数据类型 java_C/C++ 指针的小结——指针与其它数据类型(数组、字符串、函数、结构体)的关系...

一、指针与数组和字符串1、指针与数组当声明数时&#xff0c;编译器在连续的内存空间分配基本地址和足够的储存空间&#xff0c;以容纳数组的所有元素。基本地址是数组第一个元素(索引为0)的存储位置。编译器还把数组名定义为指向第一个元素的常量指针。元素的地址是通过索引和…

Linux tr命令详解

tr是个简单的替换命令&#xff0c;从标准输入中替换、缩减和/或删除字符&#xff0c;并将结果写到标准输出。 tr常见命令参数 用法&#xff1a;tr [选项]... SET1 [SET2] 从标准输入中替换、缩减和/或删除字符&#xff0c;并将结果写到标准输出。-c, -C, --complement …

512M内存编译php出错

make时错误如下 1 virtual memory exhausted: Cannot allocate memory make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1 内存小造成的&#xff0c;为了成功的话需要加上参数 –disable-fileinfo即可参考链接&#xff1a;https://bugs.php.net/bug.php?id48809 转载于…

Android中插件开发篇总结和概述

刚刚终于写完了插件开发的最后一篇文章&#xff0c;下面就来总结一下&#xff0c;关于Android中插件篇从去年的11月份就开始规划了&#xff0c;主要从三个方面去解读Android中插件开发原理。说白了&#xff0c;插件开发的原理就是&#xff1a;动态加载技术。但是我们在开发插件…

java反射机制 路径_Java 反射机制详解

引言本文主要介绍Java中&#xff0c;有关反射机制、类的加载过程、以及控制反转方面的内容。Java 反射机制Java创建对象的方式有哪些&#xff1a;new、反射、反序列化、克隆class对象获取的方法有哪些&#xff1a;类名.class、getClass、forName、classLoader.loadClass(‘包类…

prop和attr在 jquery的

https://www.cnblogs.com/Showshare/p/different-between-attr-and-prop.html转载于:https://www.cnblogs.com/beimingbingpo/p/9254680.html

java传入数据库生成柱状图_Java读取数据库数据生成柱状图

此案例是用swing显示数据的。须要引入jfreechart相关包。不同版本号可能包不同样。本人用的是此案例在ssi框架下会报错&#xff0c;不用框架就没问题。Java后台逻辑代码&#xff1a;public class BarChart {ChartPanel frame1;public BarChart() {CategoryDataset dataset get…

SVN系列操作(一)

SVN是什么&#xff1f; SVN是Subversion的简称&#xff0c;是一个开放源代码的版本控制系统&#xff0c;常用于软件开发项目中&#xff0c;实现代码、文档等的历史版本保存、共享和权限管理。 进入SVN本地目录&#xff0c;第一步操作就是update。 为什么呢&#xff1f;因为SVN是…

ubuntu-14.04.2-desktop使用方法

一、安装VMware Tools 1. 在VMware Workstation11.1.0下安装Ubuntu镜像&#xff1a;ubuntukylin-14.04.2-desktop-amd64.iso 2. 点击虚拟机菜单栏-安装VMware Tools。 3. 在Ubuntu系统光盘中找到VMwareTools-9.9.2-2496486.tar.gz&#xff0c;右键复制到“桌面”&#xff0c;然…

ubuntu 跟xshell的问题

有2个分析&#xff1a; 1&#xff1a;是windos的防火墙没有关闭 2&#xff1a;是虚拟机没有安装sshd服务器 ubuntu在CLI界面下输入&#xff1a;dpkg -l |grep ssh 因为是我安装过的sshd server 要是没有sshd server 就要输入 安装。 三&#xff1a;要是安装完之后 链接显示说…

java gdal postgresql_使用GDAL/OGR操作Postgresql数据库

&#xfeff;&#xfeff;GDAL(Geospatial Data AbstractionLibrary)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。本文将使用GDAL/OGR库读写Postgresql数据库中的表&#x…

Go语言基础之1--标识符、关键字、变量和常量、数据类型、Go的基本程序结构、Golang的特性...

一、前言 当我们项目较为简单时&#xff0c;我们在src目录下新建一个该项目目录&#xff0c;里面存放源码文件即可&#xff0c;见下图&#xff1a; 当我们一个项目较为复杂时&#xff0c;我们可以在src目录下新建一个该项目目录&#xff0c;在针对该项目不同模块创建不同目录&a…

java参数转换匹配规律_隐式转换规则

隐式转换在如下三种不同的情况会被考虑&#xff1a;1、当对象A调用某个方法时&#xff0c;这个方法不存在例如在前一节介绍的1 to 10。会将Int转换为RichInt&#xff0c;然后再调用to方法。在这种情况下&#xff0c;会将对象A(方法的调用者)隐式转换为另一个对象。2、当对象A调…

Semantic-UI的React实现(二):CSS类构造模块

更简单的类名标签 Semantic-UI使用了更简单的类名声明。用过Bootstrap的同学都会被其复杂的类名标签折磨过&#xff0c;例如一个简单的按键样式&#xff0c;不论颜色或是大小&#xff0c;都需要btn-前缀声明&#xff1a; <button type"button" class"btn btn…

T-SQL LIKE子句 模糊查询

MS SQL Server LIKE子句用于使用通配符运算符将值与类似值进行比较。 有两个通配符与LIKE运算符结合使用: 百分号&#xff08;&#xff05;&#xff09;下划线&#xff08;_&#xff09;百分号表示零个&#xff0c;一个或多个字符。 下划线表示单个数字或字符。 符号可以组合使…

ext springmvc mysql_基于ExtJs6前台,SpringMVC-Spring-Mybatis,resteasy,mysql无限极表设计,实现树状展示数据(treepanel)...

先从后台讲起1.表的设计2.mysql查询很容易&#xff0c;关键是要把id,text,parentId查出来/p>"http://mybatis.org/dtd/mybatis-3-mapper.dtd">SELECTbp.id,bb.name brandName,bp.name text,bp.photo_url photoUrl,bp.number,bp.add_time addTime,bp.modify_tim…

C# 之 Int16 Int32 Int64 的区别

Int16 值类型表示值介于 -32768 到 32767 之间的有符号整数。 Int32 值类型表示值介于 -2,147,483,648 到 2,147,483,647 之间的有符号整数。 Int64 值类型表示值介于 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 之间的整数。 --------------------------------…

php说明代码怎么写,代码怎么写 - 起步 - PHP基础 - KK的小故事

起步 - 代码怎么写 作者&#xff1a;KK发表日期&#xff1a;2016.3.9要写PHP代码就需要建立.php后缀的文件,并且在文件里要以<?php 具体代码 ?>这样的形式来书写PHP代码我们在网站目录下新建一个叫index.php的文件,并在里面编写这样的代码:echo Hello World!;?>然后…