实例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类并使之继承ActionSupport
private 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" class="chp10.UserAction" 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