   If `msg` is an atom, it just calls `raise/2` with the atom as the first
   argument and `[]` as the second argument.
 
-  If `msg` is anything else, the given exception is raised.
+  If `msg` is anything else, raises an `ArgumentError` exception.
 
   ## Examples
 

              :erlang.error atom.exception([])
            %{__struct__: struct, __exception__: true} = other when is_atom(struct) ->
              :erlang.error other
          end
        end
    end

              :erlang.raise :error, atom.exception([]), stacktrace
            %{__struct__: struct, __exception__: true} = other when is_atom(struct) ->
              :erlang.raise :error, other, stacktrace
            _ ->
              :erlang.error ArgumentError.exception("reraise/2 expects an alias or a string as the first argument")
          end
        end
    end
