Detecting errors

Example program (with select error):
  import dk.brics.xact.*;

  public class Hello {
      XML person = [[
          <person><name>John Doe</name></person>
      ]];
  
      XML html = [[
          <html>
	    <head><title>Hello</title></head>
            <body bgcolor="red">
              <h1>Hello <[name]></h1>
            </body>
          </html>	  
      ]];

      public XML sayHello() {
	  XML name = 
            person.select("/person/nema/text()")[0];  
	  return html.plug("name", name);
      }

      public static void main(String[] args) {
	  Hello hello = new Hello();
	  XML greeting = hello.sayHello();
	  greeting.analyze("xhtml1-transitional.dtd");  
	  System.out.println(greeting);
      }
  }
      

Output:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
        at Hello.sayHello(Hello.java:19)
        at Hello.main(Hello.java:25)

The XACT analyzer reports the error!

*** Inconsistent select operation at line 19
    No nodes selected