エラー回避 rescue
rescueを使うことによって、エラーを回避して処理ができる
beginとrescueの間で実行する処理で何らかのエラーが発生しても処理を中断しないようになる
begin 例外を発生させる可能性のある処理 rescue 例外が起こった場合の処理 end
rescueに続けて変数名を指定、上がってきた例外が指定した変数に代入される
begin 例外が起こる可能性のある処理 rescue => 例外オブジェクトが代入される変数 例外が起こった場合の処理 end
raiseで意図的に例外を発生させてみる
raiceは検証に便利
数に型を渡さないと、 RuntimeErrorを発生させる
RuntimeError : 特定の例外クラスには該当しないエラー
begin raise rescue => e p "error" end
結果
"error"
rescueのあとにクラスを指定すると、その例外のときのみ処理を中断しないようになる
begin raise StandardError rescue StandardError => e p "StandardErrorが発生していますが処理は中断していません" end
結果
"StandardErrorが発生していますが処理は中断していません"
指定した以外のエラーが発生すると
begin raise ArgumentError rescue ZeroDivisionError => e p "ZeroDivisionErrorが発生していますが処理は中断していません" end
結果
csv_test.rb:2:in `<main>': ArgumentError (ArgumentError)||<
例外オブジェクトからメソッドを呼んで、例外に関する情報を取得できる。
class ... 例外の種類
message ... 例外のメッセージ
backtrace ... 例外の発生した位置に関する情報($@ = $!.backtrace)
begin raise StandardError rescue StandardError => e p "StandardErrorが発生していますが処理は中断していません" p e.class end
"StandardErrorが発生していますが処理は中断していません" StandardError
全角英数字を半角英数字に 半角カナを全角カナに nkfで変換
encode_halfwidth = NKF.nkf('-m0Z1 -W -w', "AABBBBBAAアアアああアアアアアアアアアアアア")
=>
AABBBBBAAアアアああアアアアアアアアアアアア
-Z[0-3] X0208 のアルファベットといくつかの記号を ASCII に変換する
-Z | -Z0 X0208アルファベットといくつかの記号を ASCII に変換する |
-Z1 | X0208空白(いわゆる全角空白)を ASCII の空白に変換する |
-Z2 | X0208空白(いわゆる全角空白)を ASCII の空白2つに変換する |
-Z3 | X0208の>、<、”、&、を '>', '<', '"', '&' に変換する |
X0208(全角) ASCII(半角)
出力フォーマットの指定 -j -s -e -w -w16
-j | ISO-2022-JP (7bit JIS) を出力する(デフォルト) |
-s | Shift_JIS を出力する |
-e | EUC-JP を出力する |
-w | UTF-8 を出力する(BOMなし) |
-w 16 | UTF-16 LE を出力する |
git で管理する必要のないファイルは .gitignoreに記入する
$ cat .gitignore *.csv *.gem *.rbc /.config /coverage/ /InstalledFiles /pkg/ /spec/reports/ /spec/examples.txt /test/tmp/ /test/version_tmp/ /tmp/ # Used by dotenv library to load environment variables. # .env ## Specific to RubyMotion: .dat* .repl_history build/ *.bridgesupport build-iPhoneOS/ build-iPhoneSimulator/
#csvファイルはいらない
*.csv
# /.configフォルダは要らない
/.config
git 基本操作
ブランチを作ってそこにマスターから移動する
git checkout -b ブランチ名
addしてcommitしてpushをする
git add 追加したいファイル git commit -m "コメントを書く"
リモートにはじめてあげるときは下記の通りにpushする
git push --set-upstream origin ブランチ名
2回目以降は
git push ブランチ名
ブランチを消す
git branch -d ブランチ名
ステータスの確認
git status
変更箇所の確認
git diff
addした後の変更箇所の確認
git diff —cached
ブランチで修正作業をする前に以下を実行
git checkout master git checkout 作業したいブランチ git rebase master
mysql 複数の文字列の置換 replace / 文字列の結合 concat
下記の場合は、姓名をconcatで結合し、そこから空白文字(半角スペース・全角スペース・タブ)を置換している
replace(replace(replace(concat(last_name,first_name),' ',''),'\t',''),' ','') = '#{fullname}'