/**
* 异常:在程序中导致程序中断运行的一些指令
* 1.受检异常:编译期
* 2.非受检异常:运行期
* 异常处理过程分析:
* 1.一旦产生异常,系统会自动产生一个异常类的实例化对象
* 2.此时如果存在对应try语句,则执行,否则程序将退出,并由系统报告错误
*
*/
public class Main {
public static void main(String[] args) {
/*
try{
//有可能发生异常的代码段
}catch(异常类型对象){
//异常的处理操作
}catch(异常类型对象){
//异常的处理操作
}...
finally{
//异常的统一出口
}
*/
int a = 100;
Scanner input = new Scanner(System.in);
try{
for(int i=0;i<10;++i){
int b = input.nextInt();
int c = a / b;
System.out.println(c);
}
}catch(ArithmeticException e){
System.out.println("算术运算异常");
e.printStackTrace(); //输出栈中的异常信息
}catch(Exception e){
System.out.println("运算异常");
}finally{ //用途:资源的释放
System.out.println("finally:不管try中的语句是否出现异常都会执行");
} div(10,2);
} public static int div(int a,int b){
int res=0;
try{
res=a/b;
return res; //执行完finally里的东西才执行这句
}catch(ArithmeticException e){
e.printStackTrace();
return 0;
}finally{
System.out.println("除法运算结束");
}
}
}
public class Main {
public static int add() throws InputMismatchException{ //抛出,让上级去处理
Scanner input = new Scanner(System.in);
try{
int a = input.nextInt();
int b = input.nextInt();
return a+b;
}catch(InputMismatchException e){
//throw new InputMismatchException("There is a mistake.");
throw e;
}finally{
System.out.println("All finished.");
}
}
public static void main(String[] args) {
try{
System.out.println(add());
}catch(InputMismatchException e){ //上级来处理
e.printStackTrace();
}
}
}
/**
* 自定义异常类:可以通过继承Exception类或已有的异常类 例:某些业务逻辑不合理则可定义成异常
*/
public class Main {
public static int count = 5; //打飞机的次数
public static void play() throws LogicException{
/**
* 打飞机游戏
*/
Scanner input = new Scanner(System.in);
while(true){
System.out.print("请输入非零数字:");
int yesno = input.nextInt();
if(0==yesno){
System.out.println("退出游戏");
return;
}
if(0==count){
throw new LogicException("你的飞机已打光!");
}
System.out.println("你还有"+(--count)+"架飞机");
}
}
public static void main(String[] args) {
try{
play();
}catch(LogicException e){
e.printStackTrace();
}
}
} class LogicException extends Exception{
public LogicException(){
super();
}
public LogicException(String msg){
super(msg);
}
}
/**
* 受检与非受检异常:在编译期是否受检查
* 受检异常必须用throws关键字,并且要用try,非受检可以不用
*
* assert关键字:表示断言,当程序执行到某个固定位置时,程序中某个变量的取值肯定是预期的结果,那么这种操作可以使用断言完成
* 操作语法:assert 表达式
*/
public class Main {
public static void main(String[] args) {
int x = 11;
assert x==10:"结果不正确"; //需要启动断言,加VM参:-ea
}
}
/**
* #快捷键:按住Ctrl,然后点类名,可以查看原代码
* 使用String连接字符串,代码性能会非常低,因为String的内容不可改变(连接时不断创建新的char数组)
* 解决方法:StringBuffer
* StringBuffer的兄弟:StringBuilder(比StringBuffer简单些,速度更快些,建议优先使用)
* 区别:StringBuilder字符串缓冲区被单个线程使用,StringBuffer是多线程,具体百度吧。。。
*/
public class Main {
public static void main(String[] args) {
String s = "fish7";
StringBuffer sb = new StringBuffer();
sb.append("此刻打盹,你将做梦。");
sb.append("此刻学习,你将圆梦。");
System.out.println(sb);
//具体的各种方法查java手册
}
}
/**
* 代码国际化:Locale类、ResourceBundle类
* 具体百度吧。。。。
*
* 动态文本:欢迎你,某某某(不确定) 用到MessageFormat类
*/
public class Main {
public static void main(String[] args) {
Locale l1 = new Locale("zh","CN");
Locale l2 = Locale.CANADA;
Locale l3 = Locale.getDefault(); //当前系统环境 //通过ResourceBundle工具类绑定资源文件(包名 文件名的基本名称)
ResourceBundle r1 = ResourceBundle.getBundle("pkg1.info",l1); //从绑定的资源文件(属性文件)中根据key获取对应的value
Scanner input = new Scanner(System.in);
String inputKey = r1.getString("input");
String userName = r1.getString("userName"); }
}

JAVA笔记9__异常/throw关键字/自定义异常/受检与非受检异常、assert关键字/StringBuffer、StringBuilder/代码国际化、动态文本的更多相关文章

  1. JAVA受检异常和非受检异常举例

    受检异常和非受检异常(运行时异常)举例 RuntimeException(即非受检异常): RuntimeException在默认情况下会得到自动处理,所以通常用不着捕获RuntimeExceptio ...

  2. 【Java面试】请简单说一下你对受检异常和非受检异常的理解

    Hi,我是Mic 今天给大家分享一道阿里一面的面试题. 这道题目比较基础,但是确难倒了很多人. 关于"受检异常和非受检异常的理解" 我们来看看普通人和高手的回答. 普通人: 嗯.. ...

  3. JAVA可检测异常和非检测异常

    Java的可检测异常和非检测异常泾渭分明.可检测异常经编译器验证,对于声明抛出异常的任何方法,编译器将强制执行处理或声明规则. 非检测异常不遵循处理或声明规则.在产生此类异常时,不一定非要采取任何适当 ...

  4. C#中try catch中throw ex和throw方式抛出异常有何不同_异常捕获堆栈丢失问题

    前言,最近遇到一个使用try-catch异常捕获后记录一下日志,然后再抛出该异常后,异常堆栈里无法显示准确的堆栈地址的问题?   其实以前也遇到过类似问题,没有重视,这次好好研究了下,并上度娘上找了找 ...

  5. Java检查异常和非检查异常,运行时异常和非运行时异常的区别

    通常,Java的异常(包括Exception和Error)分为检查异常(checked exceptions)和非检查的异常(unchecked exceptions).其中根据Exception异常 ...

  6. Java基础知识强化之IO流笔记07:自定义的异常概述和自定义异常实现

    1. 开发的时候往往会出现很多问题(java内部系统框架中没有提供这些异常) 比如说:考试成绩必须在0~100之间. 很明显java没有对应的异常,需要我们自己来做一个异常. (1)继承自Except ...

  7. -1-6 java 异常简单介绍 java异常 异常体系 Throwable 分类 throws和throw 异常处理 自定义异常

      异常   异常:异常就是Java程序在运行过程中出现的错误. 异常由来:问题也是现实生活中一个具体事务,也可以通过java 的类的形式进行描述,并封装成对象. 其实就是Java对不正常情况进行描述 ...

  8. Effective java笔记(八),异常

    57.只针对异常的情况才使用异常 try { int i = 0; while(true) range[i++].climb(); }catch(ArrayIndexOutOfBoundsExcept ...

  9. Java中处理异常throw和throws

    1.首先我们来了解什么是异常呢? 异常阻止当前方法或作用域继续执行的问题. 2.处理异常 说到处理异常,我们当然会想到 try catch finally 在java中我们会对异常的处理有更高的认识 ...

随机推荐

  1. CLion远程调试嵌入式开发板程序

    CLion远程调试嵌入式开发板程序 目录 CLion远程调试嵌入式开发板程序 1. 目的 2. 前提条件 3. CLion设置 3.1 设置一个Deployment 3.2 上传需要的目录到目标板子 ...

  2. golang 开发环境 配置 go语言 liteIDE

    Mac: * 下载go安装包 go语言中文网 ** 通过源码编译安装需要先安装go1.4 wget https://studygolang.com/dl/golang/go1.10.3.src.tar ...

  3. 10分钟教你使用Picgo+GitHub+ jsDelivr搭建CDN加速免费图床

    前言 经常写Markdown或者博客的同学,肯定都要用到图床.图床是什么呢?其实相当于一个存储图片的网站,类似百度云这样,不过上传图片到图床后可以直接通过外链进行访问. 比如把本地一张a.jpg上传到 ...

  4. 基于AM3352/AM3354/AM3358/AM3359的Linux 开发环境搭建(上)

    遇到不少人新手小白问,前辈如何搭建一个优良的Linux 开发环境?之前一直都是在用win开发,现在想要尝试用Linux做开发等等一系列的问题.开源一直是给电子行业工作者提供了一种向技术更深处进发的机遇 ...

  5. CF1119H-Triple【FWT】

    正题 题目链接:https://www.luogu.com.cn/problem/CF1119H 题目大意 \(n\)个可重集,第\(i\)个里有\(x\)个\(a_i\),\(y\)个\(b_i\) ...

  6. UTF-8和Unicode编码

    常用的能够保存汉字的编码表有UTF-8.GBK等.需要注意,无论文件使用的是什么编码格式,读取到Java程序中,所有的字符都是用Unicode编码表示(Java中所有的字符内容都使用char类型表示, ...

  7. Windows 11 正式版 Build 22000.194 官方简体中文版、英文版(消费者版、商业版)下载

    昨天阿三正式发布了 Windows 11,版本号竟然是 22000.194,也就是 9 月 16 日的 测试版 22000.194,仅仅是文件改了个名,特别是消费者版本 hash 校验都是一致的. W ...

  8. MySQL8.0.20安装教程,MySQL8.0.20安装详细图文教程

    1.下载链接如下: MySQL8.0.20版本 https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-20.html 其他版本:MySQL8 ...

  9. Postman快速入门

        Postman是一款非常流行的支持HTTP/HTTPS协议的接口调试与测试工具,其功能非常强大,易用. 1 基础知识 1.1 下载与安装     Postman的安装步骤,本例以Windows ...

  10. IO之字符流

    什么是字符流 对于文本文件(.txt .java .c .cpp) 使用字符流处理 注意点 读入的文件一定要存在 否则就会报FileNotFoundException 异常的处理 为了保证流资源 一定 ...