Question: When to examine the `InnerException` property of the `Exception` class and its derivatives? Microsoft's "Best practices for exceptions" doesn't provide any advise on when to examine for inner exceptions. Should I do it only when exceptions are rethrown and caught in my code? Should I do it always, even when I enclose in `try-catch` block standard functions like `System.IO.File.Move`?

Answer: 
Your code works, but in `main`, the return value of `method1` is ignored. And calling `method1` in `method2` is unecessary.

You can let `method2` accept parameter `String[] strings`:

```
public static void method2(String[] strings) {

    for (String str : strings)
        System.out.println(str);
}

```

and pass the result of `method1` to `method2`:

```
String[] result = method1();
method2(result);//Will print the strings in the array that

```
Proper way of doing the above is like below.You have to take the return value of the method one and insert it into method two as a parameter.

```
 public class Hihihi
    {

    public static void main(String args[]) 
    {
      String[] test=method1();
      method2(test);
    }                                 

    public static String[] method1() 
    {
         String[] xs = new String[] {"sunshine","road","73","11"};
         String[] test = new String[4];
         test[0]=xs[0];
         test[1]=xs[1];
         test[2]=xs[2];
         test[3]=xs[3];
         return test;
     }

       public static void  method2(String[] newtest)
      { 

        for(String str : newtest)
            System.out.println(str); 
      } 
    }

```