What you've got will indeed define a new type of Exception.
I would suggest, however, that you include the call to super() in both constructors. Otherwise, when creating an instance of the exception using the default constructor, no specific information about the exception will be available.
This looks kind of odd to me The if statement attempts to retrieve a StudentRecord object from the array. It then attempts to compare the name in the object to the name provided. If they're not equal, it creates a StudentRecord object at that position in the array.
Why not make sure the object exists before trying to call a method on it?