ciao, ho sviluppato uno scriptino per l'esame di java e il risultato è stato questo

insufficiente (tutti i metodi sollevano eccezioni; test non superato)

ma non capisco cosa significhi, l'ho testato parecchio e non ho mai visto eccezioni...

qualcuno sarebbe così gentile da dargli un occhiata? lo script è molto semplice

ho la possibilità di correggerlo e di rimandarlo ma non capendo il problema non so cosa correggere

queste sono le specifiche del progetto

http://homes.dico.unimi.it/prog/turn...04/Weditor.pdf

e questo è il mio lavoro, ci sono molti commenti ma lo script è corto

Codice PHP:

import java
.util.regex.Matcher;
import java.util.regex.Pattern;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.FileNotFoundException;
import java.io.IOException;


/**
 * La classe Weditor è una piccola applicazione di 
 * word processing. Il costruttore riceve come unico 
 * parametro il nome del file da cui prendere il testo.
 * Il testo viene salvato nella variabile $_str_.
 * A questo punto è possibile utilizzare i metodi per
 * fare ricerche o rimpiazzare porzioni di testo.
 *
 * Esempio :
 * Weditor we = new Weditor("c:/test.txt");
 * int pos = we.findNext("parola");
 * System.out.println(pos);
 *
 * @version 0.1, 06/10/04
 */

class Weditor {
    
    
/** Contiene il testo prelevato dal file */
    
String $_str_ "";
    
/** Indica l'indice di partenza per le ricerche */
    
int $_curPos_ 0;
    
    
/**
     * Crea un nuova oggetto Weditor prelevando il testo 
     * da un file, il testo viene copiato nella variabile 
     * $_str_. Il parametro nomefile indica il file da cui
     * prelevare il testo, se il file non esiste viene lanciata
     * la FileNotFoundException exception.
     *
     * @param        nomefile    stringa che indica il file da cui prelevare
     *                           il testo
     * @throws       FileNotFoundException   se il file nomefile non esiste
     */
  
    
public Weditor(String nomefilethrows FileNotFoundException
    
{
        
File f = new File(nomefile); 
        
int ch;

        if(
f.exists())
        {
            try {
                
                
File inputFile = new File(nomefile);
                
FileReader in = new FileReader(inputFile);

                while ((
ch in.read()) > -1)
                        
$_str_ += (char)ch;
                
                
in.close();
                
            } catch (
IOException e) {
                
System.out.println(e.getMessage());
            }

        } else {
            throw new 
FileNotFoundException("File non trovato.");
        }
             
    }
    
    
/**
     * Ritorna il testo associato al Weditor corrente come unica stringa.
     *
     * @return      il testo associato all'oggetto Weditor
     */
    
    
public String toString()
    {
        return 
$_str_;
    }
    
    
/**
     * Cerca la successiva occorrenza di una data parola
     * all'interno del testo associato all' oggetto Weditor.
     * 
     * @return      la posizione della parola o -1 se la parola
     *              non viene trovata
     *
     * @see         Weditor#regexFind(String)
     */
    
    
public int findNext(String word)
    {
        
int[] wBounds regexFind("\\b"+word+"\\b");
        if(
wBounds[0] >= 0){
            
$_curPos_ wBounds[1];
            return 
wBounds[0];
        } else
            return -
1;
    }
    
    
/**
     * Cerca all'interno del testo associato all' oggetto Weditor
     * la successiva parola che inizia con prefix e ne restituisce
     * la posizione
     *
     * @return      la posizione della parola trovata o -1 se
     *              non è stata trovata alcuna parola
     *
     * @see         Weditor#regexFind(String)
     */
    
    
public int findStartWith(String prefix)
    {   
        
int[] wBounds regexFind("\\b"+prefix+"[\\w]*");
        if(
wBounds[0] >= 0){
            
$_curPos_ wBounds[1];
            return 
wBounds[0];
        } else
            return -
1;
    }
    
    
/**
     * Cerca all'interno del testo associato all' oggetto Weditor
     * la successiva parola che finisce con postfix e ne restituisce
     * la posizione.
     *
     * @return      la posizione della parola trovata o -1 se
     *              non è stata trovata alcuna parola
     *
     * @see         Weditor#regexFind(String)
     */

    
public int findEndWith(String postfix)
    {   
        
int[] wBounds regexFind("[\\w]*"+postfix+"\\b");
        if(
wBounds[0] >= 0){
            
$_curPos_ wBounds[1];
            return 
wBounds[0];
        } else
            return -
1;
    }
     
    
/**
     * Cerca all'interno del testo associato all' oggetto Weditor
     * la successiva parola che contiene infix e ne restituisce
     * la posizione.
     *
     * @return      la posizione della parola trovata o -1 se
     *              non è stata trovata alcuna parola
     *
     * @see         Weditor#regexFind(String)
     */
    
    
public int findContain(String infix)
    {   
        
int[] wBounds regexFind("[\\w]+"+infix+"[\\w]+");
        if(
wBounds[0] >= 0){
            
$_curPos_ wBounds[1];
            return 
wBounds[0];
        } else
            return -
1;
    }
    
    
/**
     * Setta il valore 0 come indice di partenza per le successive 
     * ricerche.
     */
    
    
public void findReset()
    {
        
$_curPos_ 0;
    }
    
    
/**
     * Partendo dall'inizio del testo associato all'oggetto Weditor
     * sostituisce la prima occorrenza di oldS con newS e restituisce
     * l'oggetto Weditor
     *
     * @return      l'oggetto Weditor aggiornato
     *
     * @see         java.lang.String#replaceFirst(String, String)
     */
    
    
public Weditor replaceTop(String oldSString newSint n)
    {
        
int repl 0;
        
        while(
repl n) {
            
$_str_ $_str_.replaceFirst("\\b"+oldS+"\\b"newS);
            
repl++;
        }
        
        return 
this;
    }
    
    
/**
     * Partendo dalla fine del testo associato all'oggetto Weditor
     * sostituisce la prima occorrenza di oldS con newS e restituisce
     * l'oggetto Weditor
     *
     * @return      l'oggetto Weditor aggiornato
     *
     * @see         java.lang.String#replaceFirst(String, String)
     * @see         Weditor#reverse(String)
     */
    
    
public Weditor replaceBottom(String oldSString newSint n)
    {
        
String oldSRreverse(oldS);
        
String newSR reverse(newS);
        
String $_str_R reverse($_str_);

        
int repl 0;

        while(
repl n) {
            
$_str_R $_str_R.replaceFirst("\\b"+oldSR+"\\b"newSR);
            
repl++;
        }
        
        
$_str_ reverse($_str_R);
        return 
this;
    }
    
    
/**
     * Sostituisce tutte le occorrenze della parola oldS con la parola
     * newS e restituisce l'oggetto Weditor.
     *
     * @return      l'oggetto Weditor aggiornato
     *
     * @see         java.lang.String#replaceAll(String, String)
     */
    
    
public Weditor replaceAll(String oldSString newS)
    {
           
$_str_ $_str_.replaceAll("\\b"+oldS+"\\b"newS);
           return 
this;
    }
    
    
/**
     * Salva il contenuto della variabile $_str_ nel file di testo 
     * nomefile
     *
     * @see         java.io.File#File(String);
     * @see         java.io.FileWriter#FileWriter(File);
     * @see         java.io.FileWriter#write(String);
     * @see         java.io.FileWriter#close();
     */
    
    
public void saveAs(String nomefile)
    {
        try {
            
File outputFile = new File(nomefile);
            
FileWriter out = new FileWriter(outputFile);
            
out.write($_str_);
            
out.close();
        } catch (
IOException e) {
            
e.getMessage();
        }
    }
    
    
/**
     * Riceve come parametro un'espressione regolare.
     * Cerca all'interno del testo associato al Weditor 
     * la prima parola che rispetta le condizioni specificate da un espressione
     * regolare.
     * 
     * @return      la posizione del primo e dell'ultimo carattere della parola.
     *              Se il metodo java.util.regex.Matcher.find lancia l'eccezione
     *              IllegalStateException, ovvero nel caso in cui nessuna parola 
     *              rispetti l'espressione regolare viene assegnato il valore -1
     *              entrambi gli elementi.
     *
     * @see         java.io.File#File(String);
     * @see         java.io.FileWriter#FileWriter(File);
     * @see         java.io.FileWriter#write(String);
     * @see         java.io.FileWriter#close();
     */
    
    
private int[] regexFind(String regex)
    {
        
int[] wBounds = new int[2];
        
Pattern p Pattern.compile(regex);
        
Matcher m p.matcher($_str_);
        
        try {
            
m.find($_curPos_);
            
wBounds[0] = m.start();
            
wBounds[1] = m.end();    
        } catch (
IllegalStateException e) {
            
wBounds[0] = wBounds[1] = -1;
        }
        
        return 
wBounds;
    }

    
/**
     * Riceve come parametro una stringa e la inverte usando il metodo
     * java.lang.StringBuffer.reverse(). 
     * 
     * @return      la stringa str invertita
     *
     * @see         java.lang.StringBuffer#reverse()
     */  

    
private String reverse(String str)
    {
        return new 
StringBuffer(str).reverse().toString();
    }

e questo è lo script che ho usato per testarlo

codice:
import java.util.*;
import java.io.*;
public class testWeditor {
    /** Creates a new instance of testWeditor */
    public static void main(String args[]) {
            
            try {
            Weditor we = new Weditor("c:/java_test/prova.tt");
            int pos = we.findNext("Milano");
            System.out.println(pos);
            } catch (FileNotFoundException e) {
                System.out.println("file non trovato");
            }

    }
}
sono disperato , help !!

grazie