JAVA范例 四)异常处理---编译时异常、运行时异常
实例35? 除0发生的算术异常(ArithmeticException)
public class Runtime_01 {public static void main(String[] args) {for (int i = 10; i > 0; i--) {System.out.print(" " + (i / (i - 1)));if (i % 5 == 0)System.out.println();}}}
?
实例36? 数组下标越界异常
public class Runtime_02 {public static void main(String[] args) {int a[] = new int[5];for (int i = 0; i < 10; i++) {a[i] = i + 1;System.out.print(" " + a[i]);}}}
?
实例37? 数组元素类型不匹配异常
public class Runtime_03 {public static void main(String[] args) {Object obj[] = new String[5];for (int i = 0; i < obj.length; i++) {obj[i] = new Integer(i);System.out.print(" " + obj[i]);}}}
?
实例38? 强制类型转换异常
public class Runtime_04 {public static void main(String[] args) {Object x = new Integer(0);System.out.println((String) x);}}
?
实例39? 索引越界异常
public class Runtime_05 {public static void main(String[] args) {int[] array = new int[5];for (int i = 0; i < array.length; i++) {array[i] = i;}for (int i = 1; i <= array.length; i++) {System.out.print(array[i - 1] + " " + array[i]);}}}
?
实例40? 空指针异常
public class Runtime_06 {static Test test;public static void main(String[] args) {System.out.println(test.talk());}}class Test {public String talk() {return "this is a boy";}}
?
实例41? 数字格式转换异常
public class Runtime_07 {private String name;private String password;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public static void main(String[] args) {Runtime_07 r7 = new Runtime_07();String name = r7.getName();int password = new Integer(r7.getPassword()).intValue();System.out.println("用户名为" + name + ";密码为" + password);}}
?
实例42? 字符串索引越界异常
public class Runtime_08 {public static void main(String[] args) {String str = "This is a StringIndexOutBounds";char ch = str.charAt(30);System.out.println(ch);}}
?
实例43? 操作错误(UnsupportedOperationException)
import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Runtime_09 {public static void main(String[] args) {String[] listArray = new String[2];List list = Arrays.asList(listArray);List list1 = new ArrayList(list);list1.add("hello");listArray[0] = "china";list.add("world");// 抛出操作错误异常System.out.println(list.get(0) + "," + list.get(1));}}
?
实例44? 找不到指定类时发生的异常(ClassNotFoundException)
??? 这里没有提供MySQL的JDBC驱动文件,所以异常
package Chapter04.check;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class CheckException_01 {public static void main(String[] args) throws Exception {Connection conn = null;Statement stmt = null;ResultSet rst = null;String s = "";Class.forName("com.mysql.jdbc.Driver");// 注册驱动程序conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/myuser", "root", "root");// 获得数据库的连接stmt = conn.createStatement();// 创建会话声明rst = stmt.executeQuery("select * from user");while (rst.next()) {System.out.print(s = new String(rst.getString(1).getBytes("ISO-8859-1"), "GBK")+ "--");System.out.print(s = new String(rst.getString(2).getBytes("ISO-8859-1"), "GBK")+ "--");System.out.print(s = new String(rst.getString(3).getBytes("ISO-8859-1"), "GBK")+ "--");System.out.print(s = new String(rst.getString(4).getBytes("ISO-8859-1"), "GBK"));System.out.println();}}}
?
实例45 请求的方法不存在
?UserAction.java
package chp10;import java.util.Date;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport {//定义一个UserAction类并使之继承ActionSupportprivate String name;private String password;private String date = new Date().toLocaleString();public String getDate() {return date;}public void setDate(String date) {this.date = date;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String addName() {System.out.println(this.getName() + " " + this.getPassword()+ " hjhjhj");if (!this.getPassword().equals("") && !this.getName().equals("")) {return "success";} else {return "fail";}}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}
?
?struts.xml?????????????????????? 这里事实上不存在add方法,当使用check.action时出现异常
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts><package name="package" extends="struts-default"><action name="check" method="add"><result name="success">/success.jsp</result><result name="fail">/fail.jsp</result></action></package></struts>
?web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
这里struts2用到的jar包:
commons-logging-1.1.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.6.jar
xwork-2.0.1.jar
?
?