Solved

Creating a Class that throws IndexOutOfBoundsException

Posted on 2001-06-15
5
197 Views
Last Modified: 2010-04-16
Hello

I was wondering if someone can help me create a class that throws an IndexOutOfBoundsException

i.e. like
class ThrowingExcep{
public Object elementAt (int index)throws IndexOutOfBoundsException{
return ___?____   ;}
}

I do not know what to put in the return statement

Thanks in advance
Will
0
Comment
Question by:willcont
5 Comments
 
LVL 7

Accepted Solution

by:
Sasha_Mapa earned 50 total points
ID: 6195548
What you want is a method that throws the exception, not a class (classes don't throw exceptions). The answer is that you don't need a return statement if you are planning to unconditionally throwing an exception. What you would do is simply this:

public Object elementAt(int i){
  throw new IndexOutOfBoundsException(String.valueOf(i));
}


A more reasonable elementAt method would be this (class code included):

public class Vector{

  private Object [] arr;
  private int size;

  public Object elementAt(int i) throws IndexOutOfBoundsException{
    if ((i<0)||(i>=size))
      throw new IndexOutOfBoundsException(String.valueOf(i));
    return arr[i];
  }

}


A throw statement passes the control to the next enclosing catch statement - if you have no such statement in the method that throws the exception, the method terminates without returning a value and control is tranferred (recursively up the stack) to the enclosing catch statement of the method that called your method.

Sasha Maryanovsky.
0
 
LVL 16

Expert Comment

by:imladris
ID: 6195551
If I understand the intent correctly, the exception would be thrown when something went wrong (and no return would be needed), otherwise you return the relevant Object. So I think it would look something like:

class ThrowingExcep{
{   Vector l;
    int max;

    ThrowingExcep()
    {   l=new Vector();
        max=0;
        return;
    }

    public Object elementAt(int index) throws IndexOutOfBoundsException
    {   if(index>=max)throw new OutOfBoundsException();
        return(l.elementAt(index));
    }
}
0
 
LVL 15

Expert Comment

by:ozymandias
ID: 6195565
import java.util.*;

class StringStore{

     Vector v;

     public StringStore(){
           v = new Vector();
     }

     public void putString(String s){
          v.add(s);
     }

     public String getString(int index) throws IndexOutOfBoundsException{
          if (index > v.size()){
               throw new IndexOutOfBoundsException();
          }
          return (String)v.elementAt(index);
     }
}
0
 
LVL 15

Expert Comment

by:ozymandias
ID: 6195567
Woah...everyone posted at once.
Should have reloaded before I hit submit.
0
 

Author Comment

by:willcont
ID: 6195572
Thank you
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.

947 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now