Что вызывает исключение java.lang.ArrayIndexOutOfBoundsException и как его предотвратить?

У меня есть партиал, который используется несколькими различными представлениями, и шаблон почтовой программы. Этот партиал должен попытаться использовать сеанс пользователя для хранения некоторой информации о состоянии, если это возможно.

Определить, существует ли сеанс, кажется небольшой проблемой. Внутри частичного вызова определенный? (Сеанс) всегда кажется верным во время рендеринга почты (это ошибка?), Но попытка доступа к «сеансу» каким-либо образом приводит к исключению «неопределенный метод».

По состоянию на теперь моя почтовая программа использует переменную экземпляра @for_mailer, чтобы сигнализировать, что этот партиал нужно отрисовывать по-другому, но это не кажется очень элегантным. wordTwo / xy / z слово-три word-four / lot / of / stuff Я мог бы использовать это регулярное выражение для сопоставления всего, кроме wordOne: (?! ...

Я хотел бы сопоставить все, кроме заданного слова (слов), поэтому, учитывая этот список:

wordOne
wordTwo/xy/z
word-three
word-four/lots/of/stuff

Я мог бы использовать это регулярное выражение для сопоставления всего, кроме wordOne:

(?!wordOne)\b.+
  ==>
    wordTwo/xy/z
    word-three
    word-four/lots/of/stuff   

Однако, если я хочу сопоставить все , кроме одного из слов, содержащих дефис / тире , то же регулярное выражение не работает, потому что дефис не является частью границы слова - это [a-zA-Z0-9 _]

Например,

some-regexp(word-four)
  ==>
    wordOne
    wordTwo/xy/z
    word-three

И

some-regexp(word-four and word-three)
  ==>
    wordOne
    wordTwo/xy/z
6
задан Paul 5 April 2011 в 17:52
поделиться