[resolvido]Não entendi Throw, Throws e Assert?

Não consegui compreender corretamente o uso destes comandos…

"throw" é usado para lançar uma exceção. Por exemplo:

public void metodo()
{
   if(alguma_coisa)
   {
      throw new Exception();
   }
}

Logicamente, por Exception ser verificada, tem que haver um bloco catch para tratá-la.

"throws" é usado para indicar que um método lança uma exceção, mas o seu tratamento será feito pelo seu chamador.

Ex:

public void metodo() throws Exception
{
   if(alguma_coisa)
   {
      throw new Exception();
   }
}

public static void main(String[] args)
{
   try{
      objeto.metodo();
   }

   catch(Exception e){}
}

Assertions são usados para verificar estados. Por exemplo, podemos utilizar a palavra chave assert para verificar se determinada expressão é true ou false. Se for false, assert lança a exceção AssertionError, que é derivada de Error.

Por ex:

public class ClasseAssert {
	
	public static void valoresInseridos() throws AssertionError
	{
		Scanner in = new Scanner(System.in);
		System.out.printf("%s ", "Entre com um número positivo:");
		int numero = in.nextInt();
		assert (numero > 0) : "Número deve ser positivo";
		
		
		System.out.println("Número entrado: "+numero);
	}

	public static void main(String[] args){
	
		try
		{
			ClasseAssert.valoresInseridos();
		}
		
		catch(AssertionError e)
		{
			System.err.printf("%s", "Número fora do intervalo.\n");
			e.printStackTrace();
		}
		
		System.out.println("Programa chega ao fim normalmente.");		
	}
}

vc precisa entender tratamento de exceções

http://camilolopes.wordpress.com/2009/02/04/tratamento-de-excecoes-em-java/

para compreender throw, throws