Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > вопрос: ioExeption


Автор: Перья 4.2.2007, 19:16
ЗНачит так...я нуб smile
Читаю книгу Х.М. Дейтел, П.Дж. Дейтел, С.И. Сантри - Технологии программирования на Java. Том 1
Там прогу пишем...  не компилиться из-за этих строк:

catch ( IOExeption ioExeption )

If ( historyIndex >= history.size() );

а вот код:

Код

import java.util.*;
import java.net.*;
import java.io.*;

import javax.swing.*;

public class WebBrowserPane extends JEditorPane {

    private List history = new ArrayList();
    private int historyIndex;

    public WebBrowserPane()
    {
        setEditable ( false );
    }

    public void goToURL (URL url)
    {
        displayPage( url );
        history.add( url );
        historyIndex = history.size() - 1;
    }

    public URL forward()
    {
        historyIndex++;

        If ( historyIndex >= history.size() );
                historyIndex = history.size() - 1;
            

            URL url = ( URL ) history.get( historyIndex );
                        displayPage( url );
                        
                        return url;
        }
        
public URL back()
    {
        historyIndex--;

    if ( historyIndex < 0 )
        historyIndex = 0;

        URL url = ( URL ) history.get( historyIndex );
        displayPage( url );

    return url;
}

private void displayPage( URL pageURL )
{
    try {
        setPage( pageURL );
        }        
    catch ( IOExeption ioExeption ) {
        ioExeption.printStackTrace();
        }
    }
}
                        

Автор: powerOn 4.2.2007, 19:28
Что компилятор пишет?

Автор: Перья 4.2.2007, 19:30
C:\ja\1>javac WebBrowserPane.java
WebBrowserPane.java:28: cannot find symbol
symbol  : method If(boolean)
location: class WebBrowserPane
                If ( historyIndex >= history.size() );
                ^
WebBrowserPane.java:56: cannot find symbol
symbol  : class IOExeption
location: class WebBrowserPane
        catch ( IOExeption ioExeption ) {
                ^
Note: WebBrowserPane.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errors

Автор: powerOn 4.2.2007, 19:36
Цитата(Перья @  4.2.2007,  19:30 Найти цитируемый пост)
C:\ja\1>javac WebBrowserPane.java
WebBrowserPane.java:28: cannot find symbol
symbol  : method If(boolean)


Посмотри на 28 строку своего кода. if - пишется с маленькой буквы. Да и точка запятой врядли там нужна. 

Цитата(Перья @  4.2.2007,  19:30 Найти цитируемый пост)
WebBrowserPane.java:56: cannot find symbol
symbol  : class IOExeption
location: class WebBrowserPane


IOExсeption

Будь внимательнее.  smile 

Автор: everyone 4.2.2007, 20:03
If ( historyIndex >= history.size() );
if ( historyIndex >= history.size() );

Операторы и переменные в Java регистро зависимы.

Добавлено @ 20:06 
Упс..., поздновато я)

Автор: Перья 4.2.2007, 20:55
че за дрянь))

вот код исправленный:
Код

    catch ( IOExсeption IOException ) {
        IOExсeption.printStackTrace();
        }


а оно пишет cannot find synbol class IOExсeption

 smile

Добавлено @ 21:03 
вот скрин... IOException как то не так написано)))))

Автор: Hidrag 4.2.2007, 21:23
Код

 catch ( IOExсeption e ) {
        e.printStackTrace();
 }


рекомендую поставить IDE, по крайней мере очепятки сразу укажет

Автор: Перья 4.2.2007, 22:03
C:\ja\1>javac WebBrowserPane.java
WebBrowserPane.java:62: class, interface, or enum expected
}
^
1 error

Новая ошибка... 


62 строка - это "}"

Автор: Enflout 4.2.2007, 22:12
Избавься от 62-й строки и поставь себе IDE, как советовал Hidraq
Также советую почитать стандарты оформления кода от Sun, выкладывались на форуме

Автор: Перья 4.2.2007, 22:28
вот пож-та...
это проблема в 62 строке

Автор: Перья 4.2.2007, 22:28
а вот когда убрал 62 строку

Автор: Hidrag 4.2.2007, 22:38
Добавь вверху
Код

import java.io.*;

Автор: Перья 5.2.2007, 13:46
в верхнем посте полностью код лежит)))) 
там прописано это))

Автор: Andyb 5.2.2007, 14:26
Код

import java.util.*;
import java.net.*;
import java.io.*;
import javax.swing.*;


public class WebBrowserPane extends JEditorPane {
    private List history = new ArrayList();
    private int historyIndex;
    public WebBrowserPane() {
        setEditable( false );
    }
    public void goToURL(URL url) {
        displayPage( url );
        history.add( url );
        historyIndex = history.size() - 1;
    }
    public URL forward() {
        historyIndex++;
        if ( historyIndex >= history.size() ){
            historyIndex = history.size() - 1;
        }
        
        URL url = ( URL ) history.get( historyIndex );
        displayPage( url );
        
        return url;
    }
    
    public URL back() {
        historyIndex--;
        if ( historyIndex < 0 )
            historyIndex = 0;
        URL url = ( URL ) history.get( historyIndex );
        displayPage( url );
        return url;
    }
    private void displayPage( URL pageURL ) {
        try {
            setPage( pageURL );
        } catch (IOException ioExeption ) {
            ioExeption.printStackTrace();
        }
    }
}


попробуй так, и поставь IDE - без него сложно начинать, все ошибки сразу видно и тп

Автор: Перья 5.2.2007, 14:40
у мя стоит NetBeans 5.5

Создал проект Java Aplication

вписал код вышеуказанный... далее Build Main Project....

init:
deps-jar:
Compiling 1 source file to C:\ja\WebBrowserPane\build\classes
Note: C:\ja\WebBrowserPane\src\webbrowserpane\WebBrowserPane.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
compile:
Created dir: C:\ja\WebBrowserPane\dist
Building jar: C:\ja\WebBrowserPane\dist\WebBrowserPane.jar
To run this application from the command line without Ant, try:
java -jar "C:\ja\WebBrowserPane\dist\WebBrowserPane.jar"
jar:
BUILD SUCCESSFUL (total time: 0 seconds)

Автор: AntonSaburov 5.2.2007, 14:45
Вот код - я собрал просто через javac.
Надо было исправить 2 ошибки - If поменял на if и IOExeption поменял на IOException

И ОГРОМНАЯ просьба - смотри внимательно на сообщения компилятора. Если не понимаешь, что пишет, то хотя бы выкладывай полностью.

Код

import java.util.*;
import java.net.*;
import java.io.*;
import javax.swing.*;

public class WebBrowserPane extends JEditorPane 
{
    private List history = new ArrayList();
    private int historyIndex;
    public WebBrowserPane()
    {
        setEditable ( false );
    }
    public void goToURL (URL url)
    {
        displayPage( url );
        history.add( url );
        historyIndex = history.size() - 1;
    }
    public URL forward()
    {
        historyIndex++;
        if ( historyIndex >= history.size() );
                historyIndex = history.size() - 1;
            
            URL url = ( URL ) history.get( historyIndex );
                        displayPage( url );
                        
                        return url;
        }
        
public URL back()
    {
        historyIndex--;
    if ( historyIndex < 0 )
        historyIndex = 0;
        URL url = ( URL ) history.get( historyIndex );
        displayPage( url );
    return url;
}
private void displayPage( URL pageURL )
{
    try {
        setPage( pageURL );
        }        
    catch ( IOException ioExeption ) {
        ioExeption.printStackTrace();
        }
    }
}
                        

Автор: Перья 5.2.2007, 15:52
Это я уже исправлял)мне уже указывали...вот я твой код фставил в файл WebBrowserPane.java

пишу в КС:

C:\ja\1>javac WebBrowserPane.java
Note: WebBrowserPane.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

значи рекомпилю с параметром -Xlint
Вот че пишет:

C:\ja\1>javac -Xlint WebBrowserPane.java
WebBrowserPane.java:16: warning: [unchecked] unchecked call to add(E) as a membe
r of the raw type java.util.List
        history.add( url );
                   ^
WebBrowserPane.java:22: warning: [empty] empty statement after if
        if ( historyIndex >= history.size() );
                                             ^
WebBrowserPane.java:5: warning: [serial] serializable class WebBrowserPane has n
o definition of serialVersionUID
public class WebBrowserPane extends JEditorPane
       ^
3 warnings

че за гадость)эххх)

Автор: javastic 5.2.2007, 16:41
Версия явы какая? Набери в КС: java -version

Добавлено @ 16:42 
У меня всё компилится без проблем, в. 1.4.2_06

Автор: Перья 5.2.2007, 17:10
C:\>java -version
java version "1.6.0"
Java™ SE Runtime Environment (build 1.6.0-b105)
Java HotSpot™ Client VM (build 1.6.0-b105, mixed mode, sharing)

Автор: Hidrag 5.2.2007, 17:33
Цитата(Перья @  5.2.2007,  15:52 Найти цитируемый пост)
че за гадость)эххх)

Это предупреждения, что есть не безопасные операции, которые могут привести к ошибке.

Автор: Перья 5.2.2007, 17:59
так в чем может проблема быть?) она походу не в коде))) яву с офф сайта качал...
я тут глянул в C:\Program Files\Java а у мя там походу 2 явы стоит jre1.5.0_06 и jre1.6.0 .... может из-за этого конфликты?))

Автор: LSD 5.2.2007, 18:06
Цитата(Перья @  5.2.2007,  17:59 Найти цитируемый пост)
так в чем может проблема быть?) она походу не в коде))) яву с офф сайта качал...

Забей пока на эту проблему. Это просто предупреждение, а не ошибка.

Автор: Любитель 5.2.2007, 18:44
Цитата(Перья @  5.2.2007,  15:52 Найти цитируемый пост)
unchecked call to add(E) as a membe
r of the raw type java.util.List
        history.add( url );

Код

private List<URL> history = new ArrayList<URL>();


Цитата(Перья @  5.2.2007,  15:52 Найти цитируемый пост)
empty statement after if
        if ( historyIndex >= history.size() );

Точка с запятой после ифа зачем? Убери её.

Цитата(Перья @  5.2.2007,  15:52 Найти цитируемый пост)
serializable class WebBrowserPane has n
o definition of serialVersionUID

Сейчас можно забить. Я бы отключил вообще в опциях компилера этот варнинг.

Автор: Перья 5.2.2007, 21:14
дааааааааа) скомпилило))) спс огромное Любитель smile))))

init:
deps-jar:
Compiling 1 source file to C:\ja\WebBrowserPane\build\classes
compile:
Building jar: C:\ja\WebBrowserPane\dist\WebBrowserPane.jar
To run this application from the command line without Ant, try:
java -jar "C:\ja\WebBrowserPane\dist\WebBrowserPane.jar"
jar:
BUILD SUCCESSFUL (total time: 0 seconds)

Автор: javastic 7.2.2007, 11:26
Перья, а вот в версии 1.4 такого предупреждения нет.smile 

Автор: Любитель 7.2.2007, 17:58
javastic, первого и не должно быть (дженериков в 1.4 нету), а вот второе (насчёт точки с запятой) - либо ты код сам набирал и, конечно (по логике кода), не написал точку с запятой, либо в опциях компилера "задавлен" этот варнинг, что впрочем не гуд.

Автор: Перья 7.2.2007, 20:21
а разе по дефолту в НетБинс варинги какие либо давяцца?) я ниче в настройках компилятора не менял)

Автор: powerOn 7.2.2007, 21:51
Цитата(Перья @  7.2.2007,  20:21 Найти цитируемый пост)
а разе по дефолту в НетБинс варинги какие либо давяцца?) я ниче в настройках компилятора не менял) 


В NetBeans по умолчанию не используются никакие флаги компилятора влияющие на подавления warning-ов.

Автор: Hidrag 7.2.2007, 22:32
Цитата(Перья @ 7.2.2007,  20:21)
а разе по дефолту в НетБинс варинги какие либо давяцца?) я ниче в настройках компилятора не менял)

Напротив, НетБинс по умолчанию выводит все варнинги!

Вот, только что выдал:
Код

Compiling 15 source files to C:\MyDocuments\JProjects\CaffeineMessanger\build\classes
Note: C:\MyDocuments\JProjects\CaffeineMessanger\src\ru\csl\msgr\Contact.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.


Автор: LSD 7.2.2007, 23:30
Цитата(Hidrag @  7.2.2007,  22:32 Найти цитируемый пост)
Напротив, НетБинс по умолчанию выводит все варнинги!

Ага, только по умолчанию они далеко не все включены, вернее включены deprecation и unchecked.
Например:
Код
public class Test implements java.io.Serializable
{
}

Если компилировать javac Test.java все нормально, а если javac -Xlint:serial Test.java
Цитата
Test.java:1: warning: [serial] serializable class Test has no definition of serialVersionUID
public class Test implements java.io.Serializable

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)