当前位置: 首页 > 编程日记 > 正文

Java学习总结:19

throws关键字

throws关键字主要在方法定义上使用,表示此方法中不进行异常的处理,而是交给被调用处处理。

例:使用throws

package com.study.Demo;class MyMath{public static int div(int x,int y)throws Exception{	//此方法不处理异常return x/y;}
}
public class Test4 {public static void main(String args[]){try{	//div()方法抛出异常,必须明确进行异常处理System.out.println(MyMath.div(10,5));}catch (Exception e){e.printStackTrace();}}
}
//结果
//2

提示:主方法上也可以使用throws抛出。

例:在主方法上使用throws

package com.study.Demo;class MyMath{public static int div(int x,int y)throws Exception{	//此方法不处理异常return x/y;}
}
public class Test4 {public static void main(String args[]) throws Exception{//表示此异常产生后会直接通过主方法抛出,代码中可以不强制使用异常处理System.out.println(MyMath.div(10,0));}
}
//结果
//Exception in thread "main" java.lang.ArithmeticException: / by zero
//	at com.study.Demo.MyMath.div(Test4.java:5)
//	at com.study.Demo.Test4.main(Test4.java:10)

throw关键字

throw关键字可以由用户手工抛出一个实例化对象。

例:手工抛出异常

package com.study.Demo;public class Test4 {public static void main(String args[]){try{throw new Exception("自己定义的异常");}catch (Exception e){e.printStackTrace();}}
}
//结果
//java.lang.Exception: 自己定义的异常
//	at com.study.Demo.Test4.main(Test4.java:11)

异常处理的标准格式

例:

package com.study.Demo;class MyMath{public static int div(int x,int y)throws Exception{	//出现异常要交给被调用处输出System.out.println("计算开始");int result=0;try{result=x/y;}catch (Exception e){throw e;	//向上抛}finally {System.out.println("计算结束");}return result;}
}
public class Test3 {public static void main(String args[]){try {System.out.println(MyMath.div(10,0));	//被调用处处理异常}catch (Exception e){e.printStackTrace();}}
}

RuntimeException类

RuntimeException类的特征:
程序在编译时不会强制性地要求用户处理异常,用户可以根据自己的需要有选择地进行处理,但是如果没有处理又发生了异常,将交由JVM默认处理。

例:

package com.study.Demo;public class Test4 {public static void main(String args[]){int temp=Integer.parseInt("100");System.out.println(temp);}
}
//结果
//100

此代码正常运行,但如出现异常,就交由JVM进行默认处理。

assert关键字

assert关键字的主要功能是进行断言。断言指的是程序执行到某行之后,其结果一定是预期的结果。
例:观察断言的使用

package com.study.Demo;public class Test5 {public static void main(String args[]){int num=10;//假设中间可能经过了20行代码来操作num的内容,期望的内容应该是20assert num==20:"num的内容不是20";	//进行断言操作System.out.println("num="+num);}
}
//结果
//num=10

结果没有出现异常,这是因为Java默认情况下是不开启断言的。如果想要启用断言,需要以下这样做:

1.打开相应的控制面板
在这里插入图片描述
2.输入-ea
在这里插入图片描述

自定义异常

用户自己开发的异常类。
如果要想实现自定义异常类,只需要继承Exception或RuntimeException父类即可。
例:定义AddException

package com.study.Demo;class AddException extends Exception{	//此异常类要强制处理public AddException(String msg){super(msg);	//调用父类构造}
}
public class Test5 {public static void main(String args[]){int num=20;try{if(num>10){	//出现了错误,应该产生异常throw new AddException("数值传递的过大");}}catch (Exception e){e.printStackTrace();}}
}
//结果
//com.study.Demo.AddException: 数值传递的过大
//	at com.study.Demo.Test5.main(Test5.java:13)

相关文章:

C语言访问网页

一、理论 http://www.zixue7.com/thread-3860-1-1.html转载于:https://www.cnblogs.com/274914765qq/p/4996433.html

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版: /dl/zentao/docker/docker_zentao.zip 备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROO…

获取指定日期之间的各个周和月

2019独角兽企业重金招聘Python工程师标准>>> 日志格式化类 Date.class.php <?php class Datefmt{function __construct() {}/*** 根据指定日期获取所在周的起始时间和结束时间*/public function get_weekinfo_by_date($date) {$idx strftime("%u", s…

nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping

今天mybatis报了个错误 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{propertyInfoId, modeIN, javaTypeclass java.lang.Long, jdbcTypenull, numericSca…

Revit和Unreal Engine真实的建筑可视化视频教程

Revit和Unreal Engine真实的建筑可视化视频教程 Lynda – Revit and Unreal Engine: Real-Life Architectural Visualizations Lynda–Revit和Unreal Engine&#xff1a;真实的建筑可视化 时长 3小时 25分 | 1.15 GB |含项目练习文件|使用的软件&#xff1a;Revit&#xff0c…

Java学习总结:20

可变参数 语法形式&#xff1a; [public | protected | private][static][final][abstract] 返回值类型 方法名称(参数类型...变量){[return[返回值];] }例&#xff1a;使用可变参数定义方法 package com.study.Demo;public class Test6 {public static void main(String ar…

Axure 全局辅助线(转)

普通辅助线作用于当前页 全局作用于所有页面 , 包括新建页面 创建普通辅助线直接拉出来 创建全局辅助线 , 在拉出来的时候按住 Ctrl 默认情况下 , 颜色不同 辅助线可以多选 , 用拖选 或 按 ctrl 多选 多选后可以批量锁定等 转自&#xff1a;链接转载于:https://www.cnblogs.com…

2022-2028年中国帘子布行业市场研究及前瞻分析报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国帘子布行业市场行业相关概述、中国帘子布行业市场行业运行环境、分析了中国帘子布行业市场…

查询在应用程序运行得很慢, 但在SSMS运行得很快的原因探究

原文:查询在应用程序运行得很慢&#xff0c; 但在SSMS运行得很快的原因探究查询在应用程序运行得很慢&#xff0c; 但在SSMS运行得很快的原因探究 -理解性能疑点 1 引言 内容来自http://www.sommarskog.se/query-plan-mysteries.html&#xff08;Slow in the Application,…

Spring Boot 2.X 实现文件上传(三)

使用 SpringBoot 项目完成单个、多个文件的上传处理&#xff0c;并将上传的文件保存到指定目录下。 代码演示案例 所有的 HTML 页面文件 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>选…

Blender灯光照明与渲染视频教程 Skillshare – Blender: Product rendering for beginners

Blender灯光照明与渲染视频教程 Skillshare – Blender: Product rendering for beginners Skillshare – Blender: Product rendering for beginners 教程大小&#xff1a;2.2G 共33小节课 1920X1080 mp4视频 语言&#xff1a;英语中文字幕 在这门课程中&#xff0c;你将了…

Java学习总结:21

泛型 泛型的引出 例&#xff1a;向下转型的错误示范 package Project.Study.Genericity;class Point{ //定义坐标类private Object x; //可以保存任意数据private Object y; //可以保存任意数据public Object getX() {return x;}public Object getY() {return y;}pu…

Lab模式的妙用--人像处理

其实就是&#xff1a; 1.复制明度图层到RGB模式&#xff0c;降低透明度。 2.仿制图章磨皮 3.液化 4.可选颜色润饰皮肤。 转载于:https://www.cnblogs.com/wensu/p/4997579.html

springboot整合swagger2之最佳实践

来源:https://blog.lqdev.cn/2018/07/21/springboot/chapter-ten/ Swagger是一款RESTful接口的文档在线自动生成、功能测试功能框架。 一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化RESTful风格的Web服务&#xff0c;加上swagger-ui&#xff0c;可以有很好的…

转:动态链接库的全局变量问题

动态链接库的全局变量问题 请问动态链接库被外部多次调用时&#xff0c;每次调用中动态库自身的全局变量都会重新初始化吗&#xff1f;如果会那怎么来使我每次调用动态库时都能从上次的状态开始执行呢&#xff1f; 你这个问题得分被调用的是同一个进程还是不同的进程。如果是不…

排名前 16 的 Java 工具类

转载来自微信公众号&#xff1a;Java 技术栈。如有侵权&#xff0c;请联系作者删除&#xff01;&#xff01; 在 Java 中&#xff0c;工具类定义了一组公共方法&#xff0c;这篇文章将介绍 Java 中使用最频繁及最通用的 Java 工具类。以下工具类、方法按使用流行度排名&#xf…

c4d教程-太空火车站场景创作视频教程Skillshare – Create A Space Train Scene With Cinema 4D Redshift Render

c4d教程-太空火车站场景创作视频教程Skillshare – Create A Space Train Scene With Cinema 4D & Redshift Render 教程大小 1.66G 共15小节 1280X720 mp4 视频 语言&#xff1a;英语中文字幕 百度一下 云桥网络 平台huo取 教程&#xff01; Skillshare – Create A Spa…

Java学习总结:23

前言&#xff1a;断更挺久了&#xff0c;今天把之前的补上 Annotation 3种最为常用的Annotation定义&#xff0c;Override、Deprecated和SuppressWarnings 1.准确的覆写&#xff1a;Override 当进行方法覆写时&#xff0c;为了保证子类所覆写的方法的确是父类中定义过的方法…

Windows Live Writer发布测试

通过Windows Live Writer发布文章测试&#xff01;&#xff01;&#xff01;&#xff01; 转载于:https://www.cnblogs.com/passerlee/p/5000567.html

2022-2028年中国锂电池用聚烯烃隔膜行业市场发展调研及投资方向分析报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新&#xff08;交付时间约3个工作日&#xff09; 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国锂电池用聚烯烃隔膜行业市场行业相关概述、中国锂电池用聚烯烃隔膜行业市场行业运行环境、…

【莫队算法】bzoj3781 小B的询问

莫队经典。 开个数组维护a[i]出现的次数。 1 #include<cstdio>2 #include<cmath>3 #include<algorithm>4 using namespace std;5 int Num,CH[12],f,c;6 inline void R(int &x){7 c0;f1;8 for(;c<0||c>9;cgetchar())if(c-)f-1;9 for(x0…

计算机为什么需要十六进制?

我们知道内存是按照字节粒度来寻址的,因此采用的数字系统必须很好的表达一个字节,也就是8比特,从这个角度上看256进制(2^8)是最好的,因为一个256进制就是表达一个字节,但还是基于可读性的原因,256进制对于人类来说记忆负担过重,而16进制则刚刚好,一个16进制数字表示一个字节的一半(4个比特),两个16进制数字正好表示一个字节。每个十六进制中的数字代表4个比特,你可以非常直观的从十六进制中知道对应的二进制是啥,比如给定一个十六进制数,假设其最后一位是9,那为什么十六进制是二进制的好朋友呢?

JAVA 自定义函数式编程

​ 2.2)定义接口 void testInterface(String str);2.定义一个普通接口(TestInterface.java)​ 2.1)类上注明为函数式接口有且只能有一个方法;

7.1.1 [Enterprise Library]缓存应用程序块场景和目标

缓存应用程序块为解决开发人员在缓存数据时所面对的绝大多数任务而设计。这些任务根据场景进行了组织&#xff0c;每个场景都给出了一个真实世界情况的示例&#xff0c;如添加条目到缓存&#xff0c;讨论了情况所需要的缓存功能&#xff0c;并展示了完成任务的代码。 根据场景组…

中式古建筑su模型大全

中式古建筑su模型大全 sketchup草图大师古建塔亭子寺庙名楼民居古建筑中式su模型素材 sketchup模型 古代建筑 古代房屋 古镇 古代街景 古代商业街 古代园林 阁楼 寺庙 含各类古建筑模型合集su模型 文件解压后大小&#xff1a;13G 含预览图 百度一下 云桥网络 平台huo取 素材…

Java学习总结:24

Lambda表达式 Lambda表达式指的是应用在单一抽象方法(SAM)接口环境下的一种简化定义形式&#xff0c;可以用于解决匿名内部类的定义复杂问题。 Lambda表达式的语法&#xff1a; (参数)->方法体相当于子类覆写抽象方法的方法体 例&#xff1a;Lambda表达式入门操作 packa…

【转】Flask安装

Flask 依赖两个外部库&#xff1a;Werkzeug 和 Jinja2 。 Werkzeug 是一个 WSGI&#xff08;在 Web 应用和多种服务器之间的标准 Python 接口) 工具集。Jinja2 负责渲染模板。 那么如何在你的电脑上安装这一切&#xff1f;虽说条条大道通罗马&#xff0c;但是最强大的方式是 vi…

OpenFeign服务接口调用

OpenFeign是什么? Feign是一个声明式的web服务客户端,让编写web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可。 OpenFeign能干什么? Feign和OpenFeign两者区别 OpenFeign使用步骤

完美解决网站PNG图标在IE6下的透明显示

现在IE6虽然有些落后&#xff0c;但不少xp用户还是首选IE6浏览器&#xff0c;一款经典长久也标准快速的浏览器必然会有忠实的用户&#xff0c;png图标IE6下默认是不支持的&#xff0c;可以通过js代码实现&#xff0c;下面由一叶扁舟为大家整理&#xff0c;代码可直接下载一、下…

WPF Layout System

http://blog.tangcs.com/2009/05/23/wpf-layout-system/转载于:https://www.cnblogs.com/WarrenTang/archive/2009/05/23/1487622.html