パーフェクトRuby on Rails(初版)を写経しているのですが、6章のfind_by!とdestroy!の!の意味が分かりません。

ドキュメント
http://railsdoc.com/references/destroy
などを見ると
!が付いていないfind_byやdestroyなどは見つかりますが、
!がついたメソッドは見つかりません。
また、find_by!やdestroy!の代わりにfind_by,destroyに変更した場合にイベントの参加キャンセル処理は正しく動作しているように見えます。

!がついていたらメソッドが見つからないエラーになるように思えるのですが、そうはならないようです。
どういう仕組みになっているのでしょうか?

class TicketController < ApplicationController
  before_action :authenticate

  #...
  def destroy
    ticket = current_user.tickets.find_by!(event_id: params[:event_id])
    ticket.destory!
    redirect_to event_path(params[:event_id]), notice: 'このイベントの参加をキャンセルしました'
  end
end