hardanger hardanger - 1 year ago 55
Java Question

How to call a custom Java Array

I am getting the following error when I try to compile this code, which is supposed to create a custom Java array that doesn't use generics. I am pretty sure this is down to not creating the array properly, but I'm not sure.

Any help would be really appreciated! Thanks!

Current Compile Error Excerpt:

51: error: unreported exception Exception; must be caught or declared to be thrown strList.add("str1");

Custom Array Class:

public class MyList {

Object[] data; // list itself. null values at the end
int capacity; // maximum capacity of the list
int num; // current size of the list
static final int DEFAULT_CAPACITY = 100;

public MyList() {
this(DEFAULT_CAPACITY); // call MyList(capacity).
public MyList(int capacity) {
this.capacity = capacity;
data = new Object[capacity]; // null array
num = 0;
public void add(Object a) throws Exception {
if (num == capacity) {
throw new Exception("list capacity exceeded");
data[num] = a;
public Object get(int index) {
// find the element at given index
if (index < 0 || index >= num) {
throw new RuntimeException("index out of bounds");
return data[index];
public void deleteLastElement() {
// delete the last element from the list
// fill in the code in the class.
if (num == 0) {
throw new RuntimeException("list is empty: cannot delete");
data[num] = null;
public void deleteFirstElement() {
// delete first element from the list
for (int i = 0; i < num - 1; i++) {
data[i] = data[i + 1];
data[num - 1] = null;
num--; // IMPORTANT. Re-establish invariant

public static void main(String[] args) {
MyList strList = new MyList();
System.out.println("after adding elements size =" + strList);


Answer Source

You need to declare that main throws can exceptions by doing this:

public static void main(String[] args) throws Exception{


putting the strList.add(...) in a try-catch block:

} catch(Exception e){ 
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download