当前位置: 首页 > news >正文

mvc 网站 只列出目录电商平台数据

mvc 网站 只列出目录,电商平台数据,建筑外观设计网站,宁波网站建设优化找哪家目录 一、异常 1.异常概述 1.1认识异常 1.2Java异常体系结构 2.Java异常处理机制 2.1异常处理 2.2捕获异常 2.2.1使用try-catch捕获异常 2.2.2使用try-catch-finally处理异常 2.2.3使用多重catch处理异常 2.3抛出异常 2.3.1使用throws声明抛出异常 2.3.2使用throw…目录 一、异常 1.异常概述 1.1认识异常 1.2Java异常体系结构 2.Java异常处理机制 2.1异常处理 2.2捕获异常 2.2.1使用try-catch捕获异常 2.2.2使用try-catch-finally处理异常 2.2.3使用多重catch处理异常 2.3抛出异常 2.3.1使用throws声明抛出异常 2.3.2使用throw抛出异常 2.4自定义异常 2.5异常链 一、异常 1.异常概述 1.1认识异常 异常是指程序在运行过程中出现的非正常情况。 public class Main {public static void main(String[] args) {int i1,j0,res;System.out.println(begin);resi/j;//算术运算异常System.out.println(end);}} 一旦程序发生异常将会立即结束因此“end”没有输出。 1.2Java异常体系结构 异常在Java中被封装成了各种异常类。 程序中常见的异常  Exception设计时异常异常层次结构的根类IOException设计时异常IO异常的根类属于非运行时异常FileNotFoundException设计时异常文件操作时找不到文件RuntimeException运行时异常运行时异常的根类RuntimeException及其子类不要求必须处理ArithmeticException运行时异常算术运算异常lllegalArgumentException运行时异常方法接收到非法参数ArrayIndexOutOfBoundsException运行时异常数组越界访问异常NullPointerException运行时异常尝试访问null对象的成员时发生的空指针异常ArrayStoreException运行时异常数据存储异常写数组操作时对象或数据类型不兼容ClassCastException运行时异常类型转换异常IIIegalThreadStateException运行时异常试图非法改变线程状态例如试图启动一个已经运行的线程NumberFormatException运行时异常数据格式异常试图把一字符串非法转换成数值 2.Java异常处理机制 2.1异常处理 Java中的异常处理机制依靠5个关键字try、catch、finally、throw、throws。这些关键字提供了两种异常处理方式 1用try、catch、finally来捕获和处理异常 try块中包含可能会抛出异常的代码 catch块中用户捕获和处理指定类型的异常 finally块中的代码无论是否发生异常都会被执行通常用于释放资源或清理操作 2使用throw、throws来抛出异常 throw关键字用于手动抛出异常对象。 throws关键字用于在方法声明中指定可能抛出的异常类型表示该方法可能会抛出该类型的异常由调用者来处理。 2.2捕获异常 2.2.1使用try-catch捕获异常 public class Main {public static void main(String[] args) {try {int i1,j0,res;System.out.println(begin);resi/j;System.out.println(end);}catch (Exception e){System.out.println(caught);e.printStackTrace();}System.out.println(over);}} 如果try语句块中的所有语句正常执行完毕没有发生异常那么catch语句块中的所有语句将被忽略。如果try语句块在执行过程中发生异常并且这个异常与catch语句块中声明的异常类型匹配那么try语句块中剩下的代码都将被忽略相应的catch语句块将会被执行。匹配是指catch中所处理的异常类型与try中发生的异常类型完全一致或者是它的父类。如果try语句块在执行过程中发生异常而抛出的异常在catch语句块中没有被声明那么程序立即终止运行程序被强迫退出。catch语句块中可以加入用戶自定义处理信息也可以调用异常对象的方法输出异常信息常用的方法如下 void prinStackTrace() 输出异常的堆栈信息。堆栈信息包括程序运行到当前类的执行流程它将输出从方法调用处到异常抛出处的方法调用的栈序列。 String getMessage() 返回异常信息描述字符串该字符串描述了异常产生的原因是 printStackTrace() 输出信息的一部分。 2.2.2使用try-catch-finally处理异常 无论try块中是否发生异常finally语句块中的代码总能被执行。 public class Main {public static void main(String[] args) {try {int i1,j0,res;System.out.println(begin);resi/j;System.out.println(end);}catch (ArithmeticException e){System.out.println(caught);e.printStackTrace();}finally {System.out.println(finally);}System.out.println(over);}} 如果try语句块中所有语句正常执行完毕程序不会进入catch语句块执行但是finally语句块会被执行。 如果try语句块在执行过程中发生异常程序会进入到catch语句块捕获异常 finally语句块也会被执行。try-catch-finally结构中try语句块是必须存在的catch、finally语句块为可选但两者至少出现其中之一。 即使在catch语句块中存在return语句finally语句块中的语句也会执行。发生异常时的执行顺序是先执行catch语句块中return之前的语句再执行finally语句块中的语句最后执行catch语句块中的return语句退出。 finally语句块中语句不执行的唯一情况是在异常处理代码中执行了 System.exit(1) 退出Java虚拟机。 public class Main {public static void main(String[] args) {try {int i1,j0,res;System.out.println(begin);resi/j;System.out.println(end);}catch (ArithmeticException e){System.out.println(caught);e.printStackTrace();System.exit(1);}finally {System.out.println(finally);}System.out.println(over);}} public class Main {public static void main(String[] args) {System.out.println(method());}private static int method() {int i1;try {i;//2System.out.println(try block,ii);//try block,i2return i;//2}catch (Exception e){i;System.out.println(catch block,ii);}finally {i10;System.out.println(finally block,ii);//finally block,i10}return i;} } public class Main {public static void main(String[] args) {System.out.println(method());}private static int method() {int i1;try {i;System.out.println(try block,ii);//try block,i2return i;}catch (Exception e){i;System.out.println(catch block,ii);return i;}finally {i10;System.out.println(finally block,ii);//finally block,i10return i;//10}} } 2.2.3使用多重catch处理异常 catch语句块的排列顺序必须是从子类到父类最后一个一般是Exception类。这是因为在异常处理中catch语句块会按照从上到下的顺序进行匹配系统会检测每个catch语句块处理的异常类型并执行第一个与异常类型匹配的catch语句块。如果将父类异常放在前面子类异常的catch语句块将永远不会被执行因为父类异常的catch语句块已经处理了异常。 一旦系统执行了与异常类型匹配的catch语句块并执行其中的一条catch语句后其后的catch语句块将被忽略程序将继续执行紧随catch语句块的代码。  子类异常应该放在前面父类异常应该放在后面。  import java.util.InputMismatchException; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner inputnew Scanner(System.in);try {System.out.println(计算开始);int i,j,res;System.out.println(请输入被除数);iinput.nextInt();System.out.println(请输入除数);jinput.nextInt();resi/j;System.out.println(i/jres);System.out.println(计算结束);}catch (InputMismatchException e){System.out.println(除数和被除数都必须是整数);}catch (ArithmeticException e){System.out.println(除数不能为0);}catch (Exception e){System.out.println(其他异常e.getMessage());}finally {System.out.println(感谢使用本程序);}System.out.println(程序结束);}} 第一种被除数发生异常 第二种除数发生异常 第三种除数为0 2.3抛出异常 2.3.1使用throws声明抛出异常 如果在一个方法体内抛出了异常并希望调用者能够及时地捕获异常Java语言中通过关键字throws声明某个方法可能抛出的各种异常以通知调用者。throws可以同时声明多个异常之间用逗号隔开。 import java.util.InputMismatchException; import java.util.Scanner;public class Main {public static void main(String[] args) {try {divide();}catch (InputMismatchException e){System.out.println(除数和被除数都必须是整数);}catch (ArithmeticException e){System.out.println(除数不能为0);}catch (Exception e){System.out.println(其他异常e.getMessage());}finally {System.out.println(感谢使用本程序);}System.out.println(程序结束);}private static void divide() throws Exception{Scanner inputnew Scanner(System.in);System.out.println(计算开始);int i,j,res;System.out.println(请输入被除数);iinput.nextInt();System.out.println(请输入除数);jinput.nextInt();resi/j;System.out.println(i/jres);System.out.println(计算结束);}} 2.3.2使用throw抛出异常 在Java语言中可以使用throw关键字来自行抛出异常。 package structure;public class Main {public static void main(String[] args) {Person1 personnew Person1();try {person.setName(扈三娘);person.setAge(18);person.setGender(男女);person.print();}catch (Exception e){e.printStackTrace();}} } class Person1{private String name;private int age0;private String gender男;public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String getGender() {return gender;}public void setGender(String gender) throws Exception{if (男.equals(gender)||女.equals(gender)){this.gender gender;}else {throw new Exception(性别必须是男或女);}}public void print(){System.out.println(姓名this.name性别this.gender年龄this.age);} }如果 throw 语句抛出的异常是 Checked 异常则该 throw 语句要么处于 try 块里显式捕获该异常要么放在一个带 throws 声明抛出的方法中即把该异常交给该方法的调用者处理 如果 throw 语句抛出的异常是 Runtime 异常则该语句无须放在 try 块里也无须放在带 throws 声明抛出的方法中程序既可以显式使用 try...catch来捕获并处理该异常也可以完全不理会该异常把该异常交给该方法调用者处理。自行抛出Runtime 异常比自行抛出Checked 异常的灵活性更好。同样抛出 Checked 异常则可以让编译器提醒程序员必须处理该异常。 throw和throws的区别 1.作用不同throw用于程序员自行产生并抛出异常throws用于声明该方法内抛出了异常。 2.使用位置不同throw位于方法体内部可以作为单独的语句使用throws必须跟在方法参数列表的后面不能单独使用。 3.内容不同throw抛出一个异常对象只能是一个throws后面跟异常类可以跟多个。 2.4自定义异常 当JDK中的异常类型不能满足程序的需要时可以自定义异常类。步骤 ①定义异常类并继承Exception或者RuntimeException。 ②编写异常类的构造方法向父类构造方法传入异常描述信息并继承父类的其他实现方法。 ③实例化自定义异常对象并在程序中使用throw抛出。 package structure;public class Main {public static void main(String[] args) {Person1 personnew Person1();try {person.setName(扈三娘);person.setAge(18);person.setGender(男女);person.print();}catch (GenderException e){e.printStackTrace();}} } //自定义异常类 class GenderException extends Exception{public GenderException(String message){super(message);} } class Person1{private String name;private int age0;private String gender男;public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String getGender() {return gender;}public void setGender(String gender) throws GenderException{if (男.equals(gender)||女.equals(gender)){this.gender gender;}else {throw new GenderException(性别必须是男或女);}}public void print(){System.out.println(姓名this.name性别this.gender年龄this.age);} }自定义异常可能是编译时异常也可能是运行时异常 。 1.如果自定义异常类继承Excpetion则是编译时异常。 特点方法中抛出的是编译时异常必须在方法上使用throws声明强制调用者处理。 2.如果自定义异常类继承RuntimeException则运行时异常。 特点方法中抛出的是运行时异常不需要在方法上用throws声明。 2.5异常链 有时候我们会捕获一个异常后再抛出另一个异常。 顾名思义就是将异常发生的原因一个传一个串起来即把底层的异常信息传给上层这样逐层抛出。 在要抛出的对象中使用 initCause() 方法添加上一个产生异常的信息; getCause() 可以获取当前异常对象的上一个异常对象。
http://www.pierceye.com/news/663978/

相关文章:

  • 网站备案电话号码购物商城网站建设方案
  • 手机商城系统徐州seo计费管理
  • 西安网站公司哪家好信息推广的方式有哪些
  • 网站开发注意的事项商丘网站制作软件
  • 51zwd一起做网站广州广东省网站备案查询
  • 如何生成一个网站自己弄公司网站
  • 企业信用信息查询网官网孝感网站seo
  • 中淼建设工程有限公司网站分类用wordpress
  • 腾讯建设网站首页做销售网站
  • 推广引流网站聚名网注册
  • 原来做网站后来跑国外了多伦多网站建设多少钱
  • 手机建站平台做母婴网站设计思路
  • 免费个人手机网站九八智能建站
  • 中山网站备案如何做购物网站
  • 常见的简单的网站制作建设网站的好公司
  • 邯郸网站制作建设wordpress+怎么迁移
  • 设计创意广告上海企业网站优化
  • 自己做网站需要购买服务器吗WordPress文章相册修改
  • 校园招聘哪个网站做的好学做川菜网站
  • 大足网站建设公司医院网站建设熊掌号
  • 做网站编辑是不是也要做推广做蛋白go分析网站
  • 免费品牌网站制作云南电商网站建设
  • 宿迁莱布拉网站建设常州做网站建设的公司
  • 广东网站建站系统哪家好常州网站搭建公司
  • 400网站建设推广软件工程师工资
  • 专门做正品的网站手机版深圳市门户网站建设怎么样
  • 做外贸比较好的网站有哪些北京短视频代运营
  • 建站公司学习筑梦网站建设
  • 手工艺品网站建设侧胡顺个人简历表格可填写
  • 电商网站竞价推广策略淘宝做问卷的网站