src/jdk/nashorn/api/scripting/NashornException.java

Print this page




 141     public final int getColumnNumber() {
 142         return column;
 143     }
 144 
 145     /**
 146      * Returns array javascript stack frames from the given exception object.
 147      *
 148      * @param exception exception from which stack frames are retrieved and filtered
 149      * @return array of javascript stack frames
 150      */
 151     public static StackTraceElement[] getScriptFrames(final Throwable exception) {
 152         final StackTraceElement[] frames = exception.getStackTrace();
 153         final List<StackTraceElement> filtered = new ArrayList<>();
 154         for (final StackTraceElement st : frames) {
 155             if (ECMAErrors.isScriptFrame(st)) {
 156                 final String className = "<" + st.getFileName() + ">";
 157                 String methodName = st.getMethodName();
 158                 if (methodName.equals(CompilerConstants.RUN_SCRIPT.symbolName())) {
 159                     methodName = "<program>";
 160                 }





 161                 filtered.add(new StackTraceElement(className, methodName,
 162                         st.getFileName(), st.getLineNumber()));
 163             }
 164         }
 165         return filtered.toArray(new StackTraceElement[filtered.size()]);
 166     }
 167 
 168     /**
 169      * Return a formatted script stack trace string with frames information separated by '\n'
 170      *
 171      * @param exception exception for which script stack string is returned
 172      * @return formatted stack trace string
 173      */
 174     public static String getScriptStackString(final Throwable exception) {
 175         final StringBuilder buf = new StringBuilder();
 176         final StackTraceElement[] frames = getScriptFrames(exception);
 177         for (final StackTraceElement st : frames) {
 178             buf.append("\tat ");
 179             buf.append(st.getMethodName());
 180             buf.append(" (");




 141     public final int getColumnNumber() {
 142         return column;
 143     }
 144 
 145     /**
 146      * Returns array javascript stack frames from the given exception object.
 147      *
 148      * @param exception exception from which stack frames are retrieved and filtered
 149      * @return array of javascript stack frames
 150      */
 151     public static StackTraceElement[] getScriptFrames(final Throwable exception) {
 152         final StackTraceElement[] frames = exception.getStackTrace();
 153         final List<StackTraceElement> filtered = new ArrayList<>();
 154         for (final StackTraceElement st : frames) {
 155             if (ECMAErrors.isScriptFrame(st)) {
 156                 final String className = "<" + st.getFileName() + ">";
 157                 String methodName = st.getMethodName();
 158                 if (methodName.equals(CompilerConstants.RUN_SCRIPT.symbolName())) {
 159                     methodName = "<program>";
 160                 }
 161 
 162                 if (methodName.contains(CompilerConstants.ANON_FUNCTION_PREFIX.symbolName())) {
 163                     methodName = "<anonymous>";
 164                 }
 165 
 166                 filtered.add(new StackTraceElement(className, methodName,
 167                         st.getFileName(), st.getLineNumber()));
 168             }
 169         }
 170         return filtered.toArray(new StackTraceElement[filtered.size()]);
 171     }
 172 
 173     /**
 174      * Return a formatted script stack trace string with frames information separated by '\n'
 175      *
 176      * @param exception exception for which script stack string is returned
 177      * @return formatted stack trace string
 178      */
 179     public static String getScriptStackString(final Throwable exception) {
 180         final StringBuilder buf = new StringBuilder();
 181         final StackTraceElement[] frames = getScriptFrames(exception);
 182         for (final StackTraceElement st : frames) {
 183             buf.append("\tat ");
 184             buf.append(st.getMethodName());
 185             buf.append(" (");