Java基础开发之编译异常和运行异常

一、getProperties()方法

1.System类提供一个getProperties()方法用来**当前系统的全部属性,它会返回一个Properties对象,也封装了系统的全部属性,这些属性的存在是以键值对的形式。

2.getProperties()方法使用例子:

public class p55 {

public static void main(String[] args) {

    // TODO Auto-generated method stub

    //获取当前系统的属性

    Properties p=System.getProperties();

    System.out.println("Java的运行环境版本:"+p.getProperty("java.version"));

    System.out.println("Java安装目录"+System.getProperty("java.home"));

    System.out.println("操作系统的构架:"+p.getProperty("os.arch"));

    System.out.println("用户的国家:"+p.getProperty("user.country"));

    System.out.println("用户的账户名称:"+p.getProperty("user.name"));

    System.out.println("用户的当前工作目录:"+p.getProperty("user.dir"));

    System.out.println("Java类路径:"+p.getProperty("java.class.path"));

}

}

运行的结果是:
IMG_256
二、public static arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 方法

1.public static arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 方法是表示一个数组的元素复制到另一个数组,它的参数作用如下所示:

Object src:表示源数组;

int srcPos:表示源数组复制的起始位置;

Object dest:表示目的数组;

int destPos:表示复制目标数组的起始位置;

int length:表示复制的长度或元素的个数;

2.实现数组元素复制到另一个数组例子

public class p56 {

public static void main(String[] args) {

    // TODO Auto-generated method stub

    //表示源数组

    String current[]={"Java","C语言","MYSQL","Python","PHP"};

    //表示目标数组

    String goal[]={"HTML5","Vue.js","JavaScript","IOS","Java EE"};

    //复制数组的元素

    System.arraycopy(current, 1, goal, 2, 3);

    //遍历数组中的元素

    for(String s:goal){

        System.out.println(s);

    }

}

}

运行的结果为:
IMG_257
三、编译异常

1.在我们程序开发当中,经常会在程序编译时产生一些异常也就是bug,我们需要处理这些异常,这个就是编译异常。

  1. 编译异常特点是java程序在编译器进行检查,如果程序出现了异常就一定要处理这些异常,否则程序不能编译。

3.处理编译异常有两种处理方式:

①使用try…catch语句进行对异常进行捕获的方式;

②使用throws关键字声明抛出的异常,调用时并对它进行处理;

四、运行异常

1.在java程序运行时产生的异常,这种异常它不编写异常处理,但它还可以进行编译,这个就是运行异常。

2.运行异常特点是java编译器不会进行检查,在程序出现这样的异常,没有使用try…catch语句或throws关键字声明抛出,该程序也可以编译。运行异常主要是程序中的逻辑不对,程序在运行没办法恢复这个异常。

3.数组的下标访问数组元素,当超过数组的下标值就会引起运行异常,我们通过下面的例子看一下:

public class p66 {

public static void main(String[] args) {

    // TODO Auto-generated method stub

    int arr[]=new int[3];

    System.out.println(arr[4]);

}

}

运行的结果是:
IMG_258
从上面的代码中,数组的长度为3,因为下标是从0开始,所以最大下标是2,当访问arr[4]数组就会出现运行的异常数组下标越界了。

五、总结

本文主要介绍了getProperties()方法、public static arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 方法、编译异常和运行异常。

getProperties()方法是获取当前系统的全部属性,它会返回一个Properties对象,也封装了系统的全部属性,这些属性的存在是以键值对的形式。

public static arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 方法是表示一个数组的元素复制到另一个数组,理解里面参数作用。了解编译异常是在程序编译产生的一些bug,我们需要处理这些异常,这就是编译异常。

在java程序运行时产生的异常,这种异常它不编写异常处理,但它还可以进行编译,这个就是运行异常。希望大家通过本文的学习,对你有所帮助!

文章来源:网络 版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处理

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot粮仓管理系统的设计与实现论文源码调试讲解

第3章 系统分析 本文作者在确定了研究的课题之后,从各大数字图书馆下载文献来阅读,并了解同类型的网站具备的大致功能,然后具体事务具体分析,得出本系统要研究的具体功能与性能。虽然分析系统这一阶段性工作主要是确定功能&#…

Java二十三种设计模式-状态模式(20/23)

本文深入探讨了状态模式,一种允许对象根据其内部状态变化而改变行为的软件设计模式。文章从定义、组成部分、实现方式、使用场景、优缺点分析、与其他模式的比较,到最佳实践和建议,全面介绍了状态模式的各个方面。通过Java语言的实现示例和实…

如何高效搜集知乎热门话题? 掌握这五种搜索技巧

本文将深入探讨如何高效地在知乎平台上挖掘热门话题,通过揭秘五大实用搜索技巧,帮助内容创作者、市场分析师快速捕捉网络热点,提升内容相关性和曝光率。掌握这些技巧,让你的文章或产品始终站在潮流前沿。 一、为何关注知乎热门话…

Ropdump:针对二进制可执行文件的安全检测工具

关于Ropdump Ropdump是一款针对二进制可执行文件的安全检测工具,该工具基于纯Python开发,是一个命令行工具,旨在帮助广大研究人员检测和分析二进制可执行文件中潜在的ROP小工具、缓冲区溢出漏洞和内存泄漏等安全问题。 功能介绍 1、识别二进…

Python实现水果忍者(开源)

一、整体介绍: 1.1 前言: 游戏代码基于Python制作经典游戏案例-水果忍者做出一些改动,优化并增加了一些功能。作为自己Python阶段学习的结束作品,文章最后有源码链接。 1.2 Python主要知识: (1&#xf…

网络安全-防火墙初步认识。

文章目录 1. 防火墙是什么?2. 防火墙的工作原理是什么?3. 防火墙的分类有哪些?4. 实战4.1 防火墙管理和实验介绍4.2 防火墙命令行初体验实验目标:实验步骤: 4.3 防火墙Web初体验实验目标:实验步骤&#xff…

canvas实现图片矩形截图,矩形旋转后的截图,旋转后的截图摆正显示

一、效果图 二、主要代码 获取矩形框中地方的截图数据 1、先获取矩形四点在画布上的实际坐标值; 2、计算矩形此时实际的宽和高,便于设置后期临时矩形的宽和高; 3、可能矩形旋转了一定的角度,我们新建一个临时的画布tempCanvas&am…

mkv怎么改成mp4?3种mkv转mp4格式方法的介绍

mkv怎么改成mp4?将MKV格式视频转换为MP4格式,能显著提升兼容性,让视频在更多设备、平台上流畅播放。无论是智能手机、平板电脑、智能电视还是网页浏览器,MP4格式都具备广泛的支持,从而扩大视频的传播范围和受众群体。这…

【Hadoop】核心组件深度剖析:HDFS、YARN与MapReduce的奥秘

🐇明明跟你说过:个人主页 🏅个人专栏:《大数据前沿:技术与应用并进》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、Hadoop简介 2、Hadoop生态系统概览 二、Hadoo…

人工智能和机器学习 3(复旦大学计算机科学与技术实践工作站)python机器学习、Pytorch库入门、d2l学习+<机器学习、神经网络————原理、理论>

前言 安装 — 动手学深度学习 2.0.0 documentation (d2l.ai)https://zh.d2l.ai/chapter_installation/index.html 安装 我们需要配置一个环境来运行 Python、Jupyter Notebook、相关库以及运行本书所需的代码,以快速入门并获得动手学习经验。 安装 Miniconda 最…

建造者模式 和 外观模式

这两种模式很像, 都是将一个复杂的流程统一用一个方法进行包装, 方便外界使用. 建造者模式更像是 外观模式的一种特里, 只对一个类的复杂初始化流程进行包装 建造者模式 简介: 就是一个类的构造方法可能很复杂, 由于系统的限制等原因, 可能很多初始化逻辑不能放在构造函数里,…

Redis大显身手:实时用户活跃排行榜

文章目录 场景说明方案设计数据结构 Redis使用方案排行榜实现更新用户活跃积分幂等策略榜单评分更新触发活跃度更新排行榜查询 技术派项目源码地址 : Gitee :技术派 - https://gitee.com/itwanger/paicodingGithub :技术派 - https://github.com/itwanger/paicoding 效果如图 …

在阿里云上部署 Docker并通过 Docker 安装 Dify

目录 一、在服务器上安装docker和docker compose 1.1 首先关闭防火墙 1.2 安装docker依赖包 1.3 设置阿里云镜像源并安装docker-ce社区版 1.4 开启docker服务并设置开机自启动 1.5 查看docker版本信息 1.6 设置镜像加速 1.7 将docker compose环境复制到系统的bin目录下…

DM8守护集群部署、数据同步验证、主备切换

1. 环境描述 实例详情 端口详情 2. 部署步骤 2.1 数据准备 2.1.1主库初始化 [dmdbaray1 ~]$ cd /dmdba/dmdbms/bin [dmdbaray1 bin]$ ./dminit path/dmdba/data PAGE_SIZE32 EXTENT_SIZE32 CASE_SENSITIVEy CHARSET1 DB_NAMEGRP1_RT_01 INSTANCE_NAMEGRP1_RT_01 PORT_NU…

C++——入门基础(上)

目录 一、C参考文档 二、C在工作领域的应用 三、C学习书籍 四、C的第一个程序 五、命名空间 (1)namespace的定义 (2)命名空间的使用 六、C的输入和输出 七、缺省函数 八、函数重载 九、写在最后 一、C参考文档 (1)虽…

第46课 Scratch入门篇:狙击望远镜

无限画中画 故事背景: 手拿一把狙击枪,第一次按下空格键的时候瞄准镜放大一倍,再按一次再放大一倍。开枪设计,瞬间击毁! 程序原理: 1、瞄准的物品放大,其实是角色的变化,我们把背景设置成角色,原始的角色是 480360,第一次放大的图为 14401080,放大了 3 倍。第二级…

【Java 并发编程】(二) 从对象内存布局开始聊 synchronized

对象的内存布局 首先抛出一个经典面试题: 一个 Object 对象占多大? 这里我用工具打印了出来, 发现是 “16bytes”, 也就是 16B; 为什么? 请继续往下看; 普通对象(除了数组), 由markword, 类型指针, 实例数据(就是对象里的成员), 对齐填充(整个对象大小要能被8B整数, 方便6…

思科OSPF动态路由配置8

#路由协议实现# #任务八OSPF动态路由配置8# 开放式最短路径优先(Open Shortest Path First,OSPF)协议是目前网络中应用最广泛的动态路由协议之一。它也属于内部网关路由协议,能够适应各种规模的网络环境,是典型的链路状态路由协…

ZooKeeper 集群的详细部署

ZooKeeper 集群部署 一、ZooKeeper 简介1.1 什么是 ZooKeeper1.2 ZooKeeper 特点 二 ZooKeeper 的架构和设计4.1 ZooKeeper 数据模型4.1.1 Znode 节点特性 三、ZooKeeper 的集群安装前准备工作3.1 需要的准备工作3.2 Linux 系统 3 个节点准备3.2.1 克隆3.2.2 配置另外两台服务器…

【RabbitMQ】 相关概念 + 工作模式

本文将介绍一些MQ中常见的概念,同时也会简单实现一下RabbitMQ的工作流程。 MQ概念 Message Queue消息队列。是用来存储消息的队列,多用于分布式系统之间的通信。 系统间调用通常有:同步通信和异步通信。MQ就是在异步通信的时候使用的。 同…