SyntaxError Invalid char `\x08′ in expressionが出た時とりあえず試してみるとよいこと

RailsでSyntaxError  (syntax =構文 の意) はよく遭遇するエラーですが、

「スペルミスか何かかな?」と思ったら

空白やコメントアウトしてる部分でSyntaxErrorが出て

( °∀°;)えっ???? ってなりました;(笑)

 

SyntaxError で Invalid char `\x08′ in expressionが出たときは、まずここを見直そう!

 

このエラーが出たときに

「該当コードのどこも間違ってないのにおかしいなぁ…」という時にも有効です。

 

すぐ直せるエラーですが、画面眺めてるだけでは少々発見し難い。。。

 

忘れた頃にまた同じパターンに落ちたらハマりそうなので、忘れずに書き留めておこうっと。

 

エラー内容:SyntaxError in 〇〇 Controller

私のエラー画面はこちら。UsersControllerでSyntaxError。 で、左画面コントローラ側の7行目、#新規作成 の部分でエラーだそうです。 コメントアウトしてるのに…ぐぬぬ

Invalid char `\x08′ in expression

SyntaxErrorが出るとこの文章も目にする。

いつも読み流してたけど、せっかくなので少し理解しておく。

エラー・メッセージ (一部抜粋)

Invalid character:

プログラム・メッセージ文字列の中に無効な文字があります。

—————————————————————–

Invalid expression:

式データ要素は無効です。(IEEE488.2,7.7.7.2を参照してください。)
例えば、括弧が対をなしていなかったり、文字が規格に違反しています。

引用元: http://ena.support.keysight.com/e5071c/manuals/webhelp/jpn/product_information/error_messages/error_messages.htm#I

無効な文字があるよって言ってたんですね。

 

でもコメントアウトしてるんだから、そもそも無効なのでは?

ヽ(*゚∀。*)ノアルェー?????

 

考えようとするとドハマりしそうです(笑) さて解決にいきましょう。

Rails初心者はここを疑え!その①: #は半角変換× 半角入力○

解決の糸口は、コメント記述時の#にありました。

 

まず自分の場合、コメント書くときには主に次の2通りのやり方をしています。

 

一つは、先に文章書いてから行選択 でコメントアウトさせる方法
(文章書く → Command+L → Command+/ )

 

もう一つは、まず#を書いてから文章を書きだす方法 で、

この#から書き始めていると(時々やってしまっているのですが)、

#を書く際、直前まで かな入力 になってたら(#あとにすぐまた日本語書きたいので)

#の入力を、かな入力で#を打ってから半角変換している

 ↑これがエラーになることがある(ただし毎回ではない)

 

この毎回じゃないというという点が難点^^;

 

エラー回避できるときもある、というよりむしろ忘れた頃にエラー認識されたりするので、コメントアウト部分でエラー出てたらまずはここを見直してみよう。

Rails初心者はここを疑え!その②:空白でSyntaxErrorが出たときは

これでコメントアウト部分のエラーは回避できました。

そのあとに続けて空白部分でもSyntaxErrorが出たので、これも直してみます。

 

 エラーになってる空白の行を一回消して書き直してみる。 エラーにされている左画面の11行目、余計な空白は消してみる  

 

 

これでどうかな?

  ↓

  

 

うむ!解決!^^

 

その③:とりあえずInvalid char `\x08′ in expressionが出たらやってみるとよいこと

空白やコメントアウト部分でない箇所でも、Invalid char ~が出たら下記のように、

とりあえずコードの空白部分を書き直したり、一文まるごとすぐ下などに書き直してみると、あっさりエラー回避できることもあります。

 

空白書き直すときは先頭や末尾も忘れずに書き直しましょう。

まとめ

★コメントの#は半角入力で書くべし

 

★空白でエラーが出たら、空白を書き直すと解決できる場合もある

 

コメント部分や空白といった、一見処理に関係のないはずのところでSyntaxErrorになったときには、

まずこのあたりをチェックしてみよう。

 

#の変換を疑うという発想は、画面とにらめっこしてるだけだとなかなか発見しづらいです。

 

なんとなくでも手を動かしてたら解決できるエラーではありますが、一つ一つ自分なりに理解して、糧にしていけたらと思います。

 

今後もたびたび遭遇しそうなエラーなので、またハマりそうになったら

 

「そういえばこういう事例あったなぁ」と思い出して、次に活かしていきましょう~♪

 

ここまで読んでくださり、ありがとうございました^^