Исключения. Стандартные исключения презентация

Содержание

VI. Исключения 3. Стандартные исключения

Слайд 2VI. Исключения
3. Стандартные исключения



Слайд 3Неконтролируемые исключения


Слайд 4Неверное использование ссылки null


Слайд 5Неверное использование ссылки null
public class NullPointerExceptionDemo {

public static void

main(String[] args) {

String[] staff = {"Harry Hacker", "Tonny Tester", "Eve Engineer", null, "Carl Cracker"};

for(String name : staff){
System.out.println("Hello " + name.toUpperCase());
}

System.out.println();
System.out.println("Total staff members: " + staff.length);
}
}


Hello HARRY HACKER
Hello TONNY TESTER
Hello EVE ENGINEER
Exception in thread "main" java.lang.NullPointerException
at standard.NullPointerExceptionDemo.main(NullPointerExceptionDemo.java:10)


Слайд 6Неверное приведение
public class ClassCastExceptionDemo {

public static void main(String[] args)

{

Object obj = new Integer(10);
System.out.println("Casting Integer to String.....");
String str =(String) obj;
System.out.println("This line will never be printed");
}
}


Casting Integer to String.....
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at standard.ClassCastExceptionDemo.main(ClassCastExceptionDemo.java:9)


Слайд 7Операция не поддерживается
public class OperationNotSupportedExceptionDemo {

public static void

main(String[] args) {

Set greetings = Collections.singleton("Hello");

for(String greeting : greetings){
System.out.println(greeting);
}

greetings.add("Hi");
greetings.add("Good morning");

for(String greeting : greetings){
System.out.println(greeting);
}
}
}

Hello
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractCollection.add(Unknown Source)
at standard.OperationNotSupportedExceptionDemo.main(OperationNotSupportedExceptionDemo.java:16)


Слайд 8Некорректное состояние
public class IllegalStateExceptionDemo {

public static void main(String[] args)

{

Set staff = new TreeSet();

staff.add("Harry Hacker");
staff.add("Tonny Tester");
staff.add("Eve Engineer");
staff.add("Carl Cracker");

Iterator iter = staff.iterator();

System.out.println(iter.next());
System.out.println(iter.next());
iter.remove();
iter.remove();
}
}

Carl Cracker
Eve Engineer
Exception in thread "main" java.lang.IllegalStateException
at java.util.TreeMap$PrivateEntryIterator.remove(TreeMap.java:1119)
at standard.IllegalStateExceptionDemo.main(IllegalStateExceptionDemo.java:25)


Слайд 9Выход за пределы массива
public class IndexOutOfBoundsExceptionDemo {

public static void

main(String[] args) {

int[] anArray = { 0, 100, 200, 300, 400, 500, 600, 700, 800, 900 };

for (int i = 0; i <= 10; i++) {

System.out.println(anArray[i]);
}

System.out.println();
System.out.println("Array length is: " + anArray.length);
}
}

0
100
200
300
400
500
600
700
800
900
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at standard.IndexOutOfBoundsExceptionDemo.main(IndexOutOfBoundsExceptionDemo.java:11)


Слайд 10Неверный аргумент
public class IllegalArgumentExceptionDemo {

public static void main(String[] args)

{

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
long now = System.currentTimeMillis();

System.out.println("Current date and time: " + sdf.format(now));

sdf = new SimpleDateFormat("Hello World: MM/dd/yyyy HH:mm:ss");
now = System.currentTimeMillis();

System.out.println("Current date and time: " + sdf.format(now));

}
}

Current date and time: 04/21/2013 19:51:03
Exception in thread "main" java.lang.IllegalArgumentException: Illegal pattern character 'e'
at java.text.SimpleDateFormat.compile(Unknown Source)
at java.text.SimpleDateFormat.initialize(Unknown Source)
at java.text.SimpleDateFormat.(Unknown Source)
at java.text.SimpleDateFormat.(Unknown Source)
at standard.IllegalArgumentExceptionDemo.main(IllegalArgumentExceptionDemo.java:16)


Слайд 11Ошибка преобразования в число
public class NumberFormatExceptionDemo {

public static void

main(String[] args) {

String[] numbers = {"9", "25", "14", "11", "33", "hello world", "45"};

int total = 0;

for (String number : numbers) {
total += Integer.parseInt(number);
System.out.println("Total so far: " + total);
}
}
}

Total so far: 9
Total so far: 34
Total so far: 48
Total so far: 59
Total so far: 92
Exception in thread "main" java.lang.NumberFormatException: For input string: "hello world"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at standard.NumberFormatExceptionDemo.main(NumberFormatExceptionDemo.java:12)


Слайд 12

Проверяемые исключения


Слайд 13Контролируемые исключения


Слайд 14Определение класса не найдено во время выполнения

java.lang.ClassNotFoundException: DoesNotExist
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at

java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at standard.ClassNotFoundExceptionDemo.main(ClassNotFoundExceptionDemo.java:13)

public class ClassNotFoundExceptionDemo {

public static void main(String args[]) {
try {
URLClassLoader loader = new URLClassLoader(new URL[] { new URL(
"file://C:/CL/ClassNotFoundException/") });
loader.loadClass("DoesNotExist");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
}

}

}


Слайд 15public class FileNotFoundExceptionDemo {

public static void main(String[] args) {

BufferedReader br = null;

try {

String sCurrentLine;
br = new BufferedReader(new FileReader("I:\\DoesNotExist.txt"));

while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {

if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

}

Файл не найден


Слайд 16Файл не найден

java.io.FileNotFoundException: I:\DoesNotExist.txt (The system cannot find the file specified)
at

java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(FileInputStream.java:120)
at java.io.FileInputStream.(FileInputStream.java:79)
at java.io.FileReader.(FileReader.java:41)
at standard.FileNotFoundExceptionDemo.main(FileNotFoundExceptionDemo.java:17)


Слайд 17public class SQLExceptionDemo {

static final String DB_URL = "jdbc:derby:C:/otherDirectory/myDB";

static final String USER = "sa";
static final String PASS = "";

public static void main(String[] args) throws SQLException {

Connection connection = null;

try {

System.out.println("Connecting to a selected database...");
connection = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Connected to the database");

} catch (SQLException e) {
e.printStackTrace();
} finally {

if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}

Ошибка доступа к СУБД


Слайд 18Ошибка доступа к СУБД
Connecting to a selected database...
java.sql.SQLException: Database 'c:/otherDirectory/myDB' not

found.
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.handleDBNotFound(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection40.(Unknown Source)
at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source)
at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
at org.apache.derby.jdbc.Driver20.connect(Unknown Source)
at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at standard.SQLExceptionDemo.main(SQLExceptionDemo.java:21)
Caused by: java.sql.SQLException: Database 'c:/otherDirectory/myDB' not found.
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
... 15 more

Слайд 19Неправильно сформированный URL

java.net.MalformedURLException: unknown protocol: gttp
at java.net.URL.(URL.java:574)
at java.net.URL.(URL.java:464)
at java.net.URL.(URL.java:413)
at standard.MalformedURLExceptionDemo.main(MalformedURLExceptionDemo.java:15)

public class

MalformedURLExceptionDemo {

public static void main(String[] args) {

try {

URL url = new URL("gttp://www.google.com:80/");

BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));

String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

}

Слайд 20

Ошибки (Errors)


Слайд 21Ошибки (Errors)


Слайд 22Определение класса не найдено
public class NoClassDefFoundErrorDemo {

public static void

main(String[] args) {

Student harry = new Student("Harry Hacker", "Applied Mathematics");
System.out.println(harry);
}
}

class Student {

private String name;
private String major;

public Student(String name, String major) {
this.name = name;
this.major = major;
}

public String toString() {
return "Student [name=" + name + ", major=" + major + "]";
}

}

Слайд 23Определение класса не найдено

F:\spaces\javase-space\06.Exceptions\bin>dir standard
Volume in drive F has no

label.
Volume Serial Number is 58B9-DDFE

Directory of F:\spaces\javase-space\06.Exceptions\bin\standard

01/21/2014 04:23 PM .
01/21/2014 04:23 PM ..
01/21/2014 04:20 PM 747 NoClassDefFoundErrorDemo.class
01/21/2014 04:20 PM 745 Student.class
2 File(s) 1,492 bytes
2 Dir(s) 40,497,762,304 bytes free

F:\spaces\javase-space\06.Exceptions\bin>java standard/NoClassDefFoundErrorDemo
Student [name=Harry Hacker, major=Applied Mathematics]

Student.class


Слайд 24Определение класса не найдено

F:\spaces\javase-space\06.Exceptions\bin>del standard\Student.class

F:\spaces\javase-space\06.Exceptions\bin>dir standard
Volume in drive F has

no label.
Volume Serial Number is 58B9-DDFE

Directory of F:\spaces\javase-space\06.Exceptions\bin\standard

01/21/2014 04:27 PM .
01/21/2014 04:27 PM ..
01/21/2014 04:20 PM 747 NoClassDefFoundErrorDemo.class
1 File(s) 747 bytes
2 Dir(s) 40,497,766,400 bytes free

F:\spaces\javase-space\06.Exceptions\bin>java standard/NoClassDefFoundErrorDemo
Exception in thread "main" java.lang.NoClassDefFoundError: standard/Student
at standard.NoClassDefFoundErrorDemo.main(NoClassDefFoundErrorDemo.java:6)
Caused by: java.lang.ClassNotFoundException: standard.Student
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 1 more

F:\spaces\javase-space\06.Exceptions\bin>

java.lang.NoClassDefFoundError

standard\Student.class

standard/Student


Слайд 25Переполнение стека
public class StackOverflowErrorDemo {

public static void RecursiveSayHello() {


System.out.println("Hello World!");
RecursiveSayHello();
}

public static void main(String[] args) {
RecursiveSayHello();
}
}

Hello World!
Hello World!
Hello World!
Hello World!
Exception in thread "main" java.lang.StackOverflowError
at sun.nio.cs.SingleByte.withResult(Unknown Source)
at sun.nio.cs.SingleByte.access$000(Unknown Source)
at sun.nio.cs.SingleByte$Encoder.encodeArrayLoop(Unknown Source)
at sun.nio.cs.SingleByte$Encoder.encodeLoop(Unknown Source)
at java.nio.charset.CharsetEncoder.encode(Unknown Source)
at sun.nio.cs.StreamEncoder.implWrite(Unknown Source)
at sun.nio.cs.StreamEncoder.write(Unknown Source)
at java.io.OutputStreamWriter.write(Unknown Source)
at java.io.BufferedWriter.flushBuffer(Unknown Source)
at java.io.PrintStream.write(Unknown Source)
at java.io.PrintStream.print(Unknown Source)
at java.io.PrintStream.println(Unknown Source)
at standard.StackOverflowErrorDemo.RecursiveSayHello(StackOverflowErrorDemo.java:7)
at standard.StackOverflowErrorDemo.RecursiveSayHello(StackOverflowErrorDemo.java:8)


Слайд 26Недостаточный объём памяти
public class OutOfMemoryErrorDemo {

public static void main(String[]

args) {

int[][] bigArray = new int[10000][];

for (int i = 0; i < bigArray.length; i++) {

bigArray[i] = new int[1024*256];
System.out.println(i + " MB used");
}
}
}

239 MB used
240 MB used
241 MB used
242 MB used
243 MB used
244 MB used
245 MB used
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at standard.OutOfMemoryErrorDemo.main(OutOfMemoryErrorDemo.java:11)


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика