Dúvida em StringTokenizer

Em meu programa, eu difini um array de 10 posicoes

ele le em modo console do usuario uma sequencia

e so coloca nos arrays NUMEROS

ex:

1+2+3+4+5

o array vai ficar

array[1]=1
array[2]=2
array[3]=3
array[4]=4
array[5]=5

ate ae tudo bem

so que meu array TEM LIMITE DE 10 pos e quando eu apenas
coloco 5 numeros
o tokenizer avisa que nao houve mais caracteres

eu quero tratar esse erro para eu nao precisar colocar sempre
10 valores
e tambem para trartar erros de tentar somar alem do limite do array
no caso 10, nao ultrapasse desse valor, ex, tentar somar array[10] + array[11], gera um erro, quero somar ate o limite.
mas acho que isso eh mais facil de ser implementado
veja o codigo abaixo

/* Exemplo de parse
 * que faz com que você some dois valores diferentes
 * exemplo: 1 + 4
 * resultado 5.
 */
 
 import java.util.StringTokenizer;
 import java.io.*;
 import java.util.*;
 
 public class soma {
 	
 	public static void main(String args[])
 	{
 	
 	try {
 	int valor=0;
 	BufferedReader reader = new BufferedReader( 
    new InputStreamReader(System.in)); 

	//int numero = Integer.parseInt(reader.readLine()); 
	String texto = reader.readLine();
	
	System.out.println(texto);
	
	//SOMA
	
	
	String[] num = new String[10];
	int x;
	StringTokenizer entrada = new StringTokenizer(texto,"+"+";");
	
	  for (x=0; x < num.length; x++) {
	  	 
	  	 //if (entrada.nextToken(true))
	  	 num[x] = entrada.nextToken();
	  	 System.out.println("Token "+x+" "+num[x]); 
	  	 if (num[x+1] = entrada.nextToken())
	  	 	System.out.println("Fim do token");
	  	 }	
		
	  for (int i=0; i < num.length; i++)
	  {
	  	valor = valor + Integer.parseInt(num[i]) + Integer.parseInt(num[i+2]);
		
		}
	System.out.println("Valor total da soma é: "+valor);
	} catch(IOException e) 	{
		System.out.println(e.toString());
	}
 
 }//fim do método
}

Crie o array para conter apenas a quantidade de tokens que a StringTokenizer tiver. Dá uma olhada no metodo countTokens.

Até.