For the list of symptoms that these errors produce, see here.
For common mistakes in Blocks which use variants, see here.
For common mistakes in Items, see here.
For common mistakes with filenames and directory structure, see here.
If your block looks fine when placed but not in inventory or your hand - the ItemBlock is wrong. In addition to the errors below, this can also be caused if you call the ItemBlock registration before the Block registration. You should do Block registration in common preInit (FMLPreInitializationEvent), ItemBlock registration in client init (FMLInitializationEvent).